logback配置文件-logback.xml的配置

<?xml version="1.0" encoding="UTF-8" ?>
<configuration debug="true" scan="true" scanPeriod="30 seconds">
    <!--等同于<configuration debug="true">-->
    <!-- Recommendation: place status listeners towards the the top of the configuration file -->
    <!--    <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener"/>-->
    <!--变量-->
    <!--日志的根目录,根据实际情况设置-->
    <property name="LOG_HOME" value="D:/IdeaProjects/logbackDemo/log"/>
    <!--控制台输出-->
    <appender name="STDOUT"
              class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned by default the type
             ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${LOG_HOME}/simple.log</file>
        <encoder>
            <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
        </encoder>
    </appender>
    <!--
    RollingFileAppender:
    rollingPolicy://回滚策略
        TimeBasedRollingPolicy
        FixedWindowRollingPolicy
    triggeringPolicy://触发策略
        SizeBasedTriggeringPolicy
    -->
    <!--每天生产一个日志文件,保留30天的日志-->
    <appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/logfile.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <!--每天生产一个日志文件,日志文件最大1MB,保留30天的日志-->
    <appender name="SIZE_BASED_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/log_size_based_file.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <!--默认值:10485760=10*2^20=10MB-->
            <!--日志文件最大1MB,超过1MB不记录-->
            <maxFileSize>1MB</maxFileSize>
        </triggeringPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <!--固定生成日志文件数量,当日志文件大小达到20MB时压缩-->
    <appender name="FIXED_WINDOW_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/log_fixed_window_file.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <minIndex>1</minIndex>
            <maxIndex>10</maxIndex>
            <!--
            假设maxIndex为3,已生成文件数量达到maxIndex,文件名分别为log.1.zip,log.2.zip,log.3.zip
            之后新生成的文件将覆盖log.1.zip,
            再之后新生成的文件仍然覆盖log.1.zip,但是之前的log.1.zip将覆盖log.2.zip
            再之后,又新生成了文件,那么log.2.zip将覆盖log.3.zip,log.1.zip覆盖log.2.zip,新文件覆盖log.1.zip
            -->
            <fileNamePattern>${LOG_HOME}/log_fixed_window_file.%i.log.zip</fileNamePattern>
        </rollingPolicy>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <!--默认值:10485760=10*2^20=10MB-->
            <maxFileSize>20MB</maxFileSize>
        </triggeringPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--<logger level="trace" name="com.example.logbackdemo.test.Test1">
        <appender-ref ref="FIXED_WINDOW_FILE"/>
    </logger>-->

    <root level="info">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FIXED_WINDOW_FILE"/>
    </root>
</configuration>

logback配置文档可知:

配置文档最基本的结构

配置文件最基本的结构

依次进行说明


 

configuration

1. debug

<configuration debug="true"></configuration>

等同于

<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener"/>

表示对logback的状态进行监听

2. scan

<configuration scan="true"></configuration>

配置文件自动扫描,默认每分钟扫描一次

需要注意的是:如果指定的扫描周期,周期的单位不加默认为毫秒

扫描周期单位:milliseconds, seconds, minutes, hours

<configuration scan="true" scanPeriod="30 seconds"></configuration>

 

appender

必填属性name和class

1. name

用于命名appender,在之后的logger中使用。

2.class

指定实现类的全称

3. appender下的结构

 

 

 


 

logger

必填属性:name

选填属性:level和additivity

1. name

logger作用的具体包名或具体类名

2. level

属性值:TRACE, DEBUG, INFO, WARN, ERROR, ALL 或 OFF,大小写不敏感

属性值如果填INHERITED或NULL,logger会继承上级

3. additivity

属性值:true或false

4. <appender-ref ref="XXX"/>

对appender的引用


 

root

root实际就是一个特别的logger,他的name固定,就是根name,所以name属性不需要填。

 

posted @ 2021-12-21 16:11  pyt123456  阅读(297)  评论(0)    收藏  举报