Logback比Log4j 的优点网上介绍的很多,这里就不再赘述了。
其实配置很简单,只需要所有标有 Log4j%%.jar 的包从 classPath 中剔除,再 导入 logback-classic.jar 与 logback-core.jar 即可,当然还需要 slf4j.jar ,但Hibernate 天生依赖slf所以不用重复导入了。
在 src 路径下 建立 logback.xml (类似 log4j.properties的配置文件)
<?xml version="1.0" encoding="UTF-8"?> <!-- Reference Manual http://logback.qos.ch/manual/index.html --> <configuration> <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> <encoder charset="UTF-8"> <!-- encoder 可以指定字符集,对于中文输出有意义 --> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger -- %msg -- %n</pattern> </encoder> </appender> <appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>TRACE</level> </filter> <!-- 可让每天产生一个日志文件,最多 10 个,自动回滚 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>E:/Log/Unmi-%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>10</maxHistory> </rollingPolicy> <!-- 下面这段注释的代码可以在日志文件超过 5MB 时进行归档,并且归档文件后缀只要是 .zip 或 .gz 就会自动压缩日志归档 --> <!-- file>d:/log/Unmi.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>d:/log/Unmi.%i.log.zip</fileNamePattern> <minIndex>1</minIndex> <maxIndex>10</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>5MB</maxFileSize> </triggeringPolicy --> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger -- %msg -- %n</pattern> </encoder> </appender> <!-- 输出到控制台和文件,可定义更多的 Appender --> <root level="DEBUG"> <appender-ref ref="stdout" /> <appender-ref ref="RollingFile" /> </root> <!-- 下面配置一些第三方包的日志过滤级别,用于避免刷屏 --> <logger name="org.hibernate" level="WARN" /> <logger name="org.springframework" level="WARN" /> <logger name="com.opensymphony" level="WARN" /> <logger name="org.apache" level="WARN" /> <!-- show parameters for hibernate sql 专为 Hibernate 定制 --> <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" /> <logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" /> <logger name="org.hibernate.SQL" level="DEBUG" /> <logger name="org.hibernate.engine.QueryParameters" level="DEBUG" /> <logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" /> </configuration>
转自 http://www.iwangyu.com/index.php/archives/396 此处的配置文件。