logback.xml配置以详解

记录一下项目中涉及到的日志配置信息:

<?xml version="1.0" encoding="UTF-8"?>
<!--scan为true:配置文件发生改变时,会重新加载。
    scanPeriod:设置监测配置文件是否有修改的时间间隔
    debug:为true时,将打印出logback内部日志信息,实时查看logback运行状态,默认值为false
-->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!--定义参数常量-->
    <!--日志级别:TRACE<DEBUG<INFO<WARN<ERROR-->
    <property name="log.level" value="debug"/>
    <!--文件保存的时间-->
    <property name="log.maxHistory" value="30"/>
    <!--定义日志文件输出位置-->
    <property name="log.filePath" value="${catalina.base}/logs/webapps"/>
    <!--日志输出格式-->
    <property name="log.pattern"
              value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n"/>

    <!--控制台设置-->
    <!--consoleAppender:表示输出到控制台-->
    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <!--encoder作用:1、把日志信息转换成字节组信息
            2、把字节组写入到输出流
        -->
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
    </appender>

    <!--DEBUG-->
    <appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--文件路径-->
        <file>${log.filePath}/debug.log</file>
        <!--滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件-->
        <!--滚动策略,它根据时间来制定滚动策略。即负责滚动也负责出发滚动-->
        <roollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--文件名称-->
            <fileNamePattern>${log.filePath}/debug/debug.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
            <!--文件最大保存历史数量-->
            <maxHistory>${log.maxHistory}</maxHistory>
        </roollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!--INFO-->
    <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--文件路径-->
        <file>${log.filePath}/info.log</file>
        <roollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--文件名称-->
            <fileNamePattern>${log.filePath}/info/info.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
            <!--文件祖达保存历史数量-->
            <maxHistory>${log.maxHistory}</maxHistory>
        </roollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!--ERROR-->
    <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--文件路径-->
        <file>${log.filePath}/error.log</file>
        <roollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--文件名称-->
            <fileNamePattern>${log.filePath}/error/error.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
            <!--文件祖达保存历史数量-->
            <maxHistory>${log.maxHistory}</maxHistory>
        </roollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!--根节点,表明基本的日志级别,里面可以由多个appender规则-->
    <logger name="com.bc.o2o" level="${log.level}" additivity="true">
        <!--引入控制台输出规则-->
        <appender-ref ref="debugAppender"/>
        <appender-ref ref="infoAppender"/>
        <appender-ref ref="errorAppender"/>
    </logger>
    <root level="info">
        <appender-ref ref="consoleAppender"/>
    </root>
</configuration>



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值