Logback配置实例

作者: JerryHouse 分类: java, 日志分析 发布时间: 2015-10-10 11:20 ė 6Logback配置实例已关闭评论

这是我在一个项目中的logback配置实例,主要的功能如下:

  • 启动日志记录到BIZER_FILE
  • 正常处理的请求日志记录到QUERY_INFO_FILE
  • 没有被正常处理的请求日记记录到QUERY_ERROR_FILE
  • QUERY_INFO_FILE中的文件大小到100M时会被压缩,压缩后的文件名格式为query.yyyy-MM-dd.i.log.zip,其中i是一个整数,用来区分同一天的不同日志压缩文件
  • 第二天到来时,第一天的日志会被压缩,压缩后的文件名格式为query.yyyy-MM-dd.i.log.zip

错误日志和正常日志相分离,正常日志需要记录处理结果和过程,会被搜集到数据仓库中;而错误日志会记录错误信息,例如堆栈信息,方便定位问题,不会被入到数据仓库中。两者的日志格式和目的不一样,隔离有利于简化处理流程。

<configuration>
    <appender name="BIZER_FILE" class="ch.qos.logback.core.FileAppender">
        <file>logs/bizer.log</file>
        <encoder>
            <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="QUERY_INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <file>logs/query.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logs/query.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>14</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>

    <appender name="QUERY_ERROR_FILE" class="ch.qos.logback.core.FileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <file>logs/bizer.log</file>
        <encoder>
            <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="com.ymatou.search.ysearch.bizer.service.impl.DefaultBizService" level="INFO" additivity="false">
        <appender-ref ref="QUERY_ERROR_FILE" />
        <appender-ref ref="QUERY_INFO_FILE" />
    </logger>

    <logger name="com.ymatou.search.ysearch.bizer.service.impl.AbBizService" level="INFO" additivity="false">
        <appender-ref ref="QUERY_ERROR_FILE" />
        <appender-ref ref="QUERY_INFO_FILE" />
    </logger>

    <root level="INFO" debug="true" additivity="false">
        <appender-ref ref="BIZER_FILE"/>
    </root>
</configuration>

本文出自 dcharm,转载时请注明出处及相应链接。

本文永久链接: http://www.dcharm.com/?p=459

Ɣ回顶部