SpringBoot中LogBack日志输出配置记录

245 阅读2分钟

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

<!--
Created by jinKai on 2017/1/22
configuration:
scan : 配置文件如果发生改变,将会被重新加载,默认值为true
scanPeriod :设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟
debug :当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
-->
<configuration debug="false" scan="true" scanPeriod="1 seconds">

    <!--contextName :设置日志上下文名称,可以通过%contextName来打印日志上下文名称-->
    <contextName>powermo</contextName>

    <!--property可以用来设置变量,可以通过${name}来访问,有以下的属性
        name,用于${name}访问的key
        value,用于${value}访问的value
        file ,用于指定配置文件的路径,他的作用在于,如果你有多个配置信息的话,可以直接写在配         置文件中,然后通过file引入-->
    <property name="log.path" value="F:\\logback.log"/>

    <!--appender格式化日志输出节点
        有俩个属性name和class
        class用来指定哪种输出策略,常用就是控制台输出策略和文件输出策略
        filter,日志输出拦截器,可以自定义拦截器也可以用系统一些定义好的拦截器-->
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!--自定义拦截器 <filter class="com.example.logback.filter.MyFilter" /> -->

        <!--过滤Error级别以下的日志输出到控制台-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <!--encoder和pattern节点组合用于具体输出的日志格式-->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36}             - %msg%n</pattern>
        </encoder>
    </appender>
    <!--rollingPolicy日志回滚策略,TimeBasedRollingPolicy,基于时间的回滚策略-->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--file节点用来指明日志文件的输出位置,可以是绝对路径也可以是相对路径-->
        <file>${log.path}</file>
        <!--过滤Error级别以下的日志输出到文件-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--fileNamePattern,必要节点,可以用来设置指定时间的日志归档,例如我们上面的例            子是每天将日志归档成一个zip包-->
            <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
            <!--30天的日志周期,最大不能超过10GB -->
            <maxHistory>30</maxHistory>
            <totalSizeCap>10GB</totalSizeCap>
        </rollingPolicy>
        <!--日志文件最大的大小-->
         <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringP          olicy">
          <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
        <encoder>
            <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
            </pattern>
        </encoder>
    </appender>
    <!--root节点,必选节点,用来指定最基础的日志输出级别,他有俩个自己点可以用来应用appender,格式化日志输出-->
    <root level="INFO">
        <appender-ref ref="console" />
        <appender-ref ref="file" />
    </root>
    <!--logger节点,可选节点,用来具体指明包的日志输出级别,它将会覆盖root的输出级别-->
    <!--<logger name="com.example.logback" level="warn" />-->

</configuration>