logback配置文件解析

<?xml version="1.0" encoding="UTF-8"?>

     <!--

       scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true 

       scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。  

       当scan为true时,此属性生效。默认的时间间隔为1分钟 

       debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。

   -->

<configuration scan="true" scanPeriod="60 second" debug="false">

        <!--     value 值为 生成日志文件路径-->

     <property name="LOG_HOME" value="/opt/tomcat-9280/logs/channel_logs">

    <!-- 控制台输出 -->
      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
     <!-- 日志输出编码 -->
     <Encoding>UTF-8</Encoding>
     <layout class="ch.qos.logback.classic.PatternLayout">

        <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
     </layout>

        <!--      configuration 子节点为 appender、logger、root    -->                                                                                                    // 三个子节点的区别

                              

            <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">

           <!-- append: true,日志被追加到文件结尾; false,清空现存文件;默认是true --> 

               <append>true</append>

              <filter class="ch.qos.logback.classic.filter.LevelFilter">

           <!-- LevelFilter: 级别过滤器,根据日志级别进行过滤 -->                                                                                                       // 日志过滤级别
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>

        <!-- 按每小时滚动文件,如果一个小时内达到10M也会滚动文件, 滚动文件将会压缩成zip格式 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/channel_info-%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{HH:mm:ss.SSS},%msg%n</Pattern>
        </layout>
    </appender>


        <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">   
            <level>WARN</level>   
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/channel_error.%d{yyyy-MM-dd}.log</fileNamePattern>

                 <!-- 每天生成一个日志文件,保存300天的日志文件  
                 如果隔一段时间没有输出日志,前面过期的日志不会被删除,只有再重新打印日志的时候,会触发删除过期日志的操作

                --> 

            <maxHistory>300</maxHistory>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n</Pattern>
        </layout>
    </appender>


     <appender name ="ASYNC" class= "ch.qos.logback.classic.AsyncAppender”>  
           <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 —>  
         <discardingThreshold >0</discardingThreshold>     
        <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 —>  
       <queueSize>1024</queueSize>
       <!-- 添加附加的appender,最多只能添加一个 -->  
       <appender-ref ref ="ERROR"/>  
   </appender>

    <!-- 日志输出级别 -->
   <root level="DEBUG">
    <!--  <appender-ref ref="STDOUT" />  -->
   </root>

</configuration>


    

猜你喜欢

转载自blog.csdn.net/chenyu201003/article/details/62229153