luinstein 发表于 2012-12-11 22:49:26

Logback 替代 Log4j 应用于 Hibernate

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>from:http://go.cxweb.com.cn/qpx5s
页: [1]
查看完整版本: Logback 替代 Log4j 应用于 Hibernate