logback批分大日志文件

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

<configuration>

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

    <file>E:/logs/mylog.txt</file>

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

      <!-- rollover daily -->

      <fileNamePattern>E:/logs/mylog-%d{yyyy-MM-dd_HH-mm}.%i.log</fileNamePattern>

      <maxHistory>5</maxHistory>

      <timeBasedFileNamingAndTriggeringPolicy

            class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

        <!-- or whenever the file size reaches 100MB -->

        <maxFileSize>100MB</maxFileSize>

      </timeBasedFileNamingAndTriggeringPolicy>

    </rollingPolicy>

    <encoder>

      <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n</pattern>

       <charset class="java.nio.charset.Charset">UTF-8</charset>

    </encoder>

</appender>


  <logger name="javax.validation" level="info" />

<logger name="com.lppz.takeout.daq" level="info" />

<logger name="org.springframework.beans.factory" level="warn"/>

<logger name="org.springframework.transaction" level="info" />

<logger name="org.springframework.validation" level="info" />

<logger name="org.springframework.test" level="warn" />

<logger name="org.springframework.aop.interceptor.PerformanceMonitorInterceptor" level="trace" appender-ref="logfile"/>

    <root level="info">

<appender-ref ref="logfile"/>

    </root>

</configuration>

对上面的解析:

文件日志输出采用的 ch.qos.logback.core.rolling.RollingFileAppender 类,它的基本属性包括<file>指定输入文件路径,encoder指定日志格式。

其中,rollingPolicy标签指定的是日志分包策略,ch.qos.logback.core.rolling.TimeBasedRollingPolicy 类实现的是基于时间的分包策略,分包间隔是根据fileNamePattern中指定的事件最小单位,比如例子中的%d{yyyy-MM-dd_HH-mm}的最小事件单位为分,它的触发方式就是1分钟,策略在每次向日志中添加新内容时触发,如果满足条件,就将mylog.txt复制到E:/logs/目录并更名为mylog-2010-06-22_13-13.1.log,并删除原mylog.txt。

maxHistory 的值为指定E:/logs目录下存在的类似mylog-2010-06-22_13-13.1.log文件的最大个数,当超过时会删除最早的文件。

此外,策略还可以互相嵌套,比如本例中在时间策略中又嵌套了文件大小策略,ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP 实现对单文件大小的判断,当超过 maxFileSize 中指定大大小时,文件名中的变量%i会加一,即在不满足时间触发且满足大小触发时,会生成mylog-2010-06-22_13-13.1.log和mylog-2010-06-22_13-13.2.log两个文件。

猜你喜欢

转载自blog.csdn.net/weixin_33681778/article/details/90970901
今日推荐