我正在使用 Hibernate 3.1.3 和 Logback(经典+核心)1.1.7。
这是我的 logback.xml
<appender name="hibernate-sql"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/hibernate-sql.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>c:/temp/hibernate-sql.%i.log.zip</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>2MB</MaxFileSize>
</triggeringPolicy>
</appender>
<logger name="org.hibernate.hql">
<level value="TRACE"/>
<appender-ref ref="hibernate-sql"/>
</logger>
<logger name="org.hibernate.SQL">
<level value="TRACE"/>
<appender-ref ref="hibernate-sql"/>
</logger>
<root level="TRACE">
<!--<appender-ref ref="FILE"/>-->
<!--<appender-ref ref="STDOUT"/>-->
</root>
我在 IDE 控制台中记录了 SQL(由于 hibernate.show_sql = true
),但没有在 messages/hibernate-sql.log 中记录。文件已创建良好,但仍为空。
这是有关 logback 的调试信息:
12:34:43,301 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
12:34:43,301 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
12:34:43,301 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/C:/******/logback.xml]
12:34:43,535 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
12:34:43,543 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [hibernate-sql]
12:34:43,668 |-INFO in ch.qos.logback.core.rolling.FixedWindowRollingPolicy@77e4c80f - Will use zip compression
12:34:43,678 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[hibernate-sql] - Active log file name: logs/hibernate-sql.log
12:34:43,679 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[hibernate-sql] - File property is set to [logs/hibernate-sql.log]
12:34:43,684 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - org.hibernate.hql level set to TRACE
12:34:43,684 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [hibernate-sql] to Logger[org.hibernate.hql]
12:34:43,685 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - org.hibernate.SQL level set to TRACE
12:34:43,685 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [hibernate-sql] to Logger[org.hibernate.SQL]
12:34:43,686 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to TRACE
12:34:43,686 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
12:34:43,687 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@36f0f1be - Registering current configuration as safe fallback point
即使它很好地创建了文件,为什么它会登录到控制台而不是登录到我的文件中?谢谢。
最佳答案
尝试将 debug="true"
添加到您的 logback.xml 文件中,如所述 here 。它将有助于理解您的日志记录的实际配置方式。
关于java - Hibernate + Logback,不登录文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37433944/