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


<?xml version="1.0" encoding="UTF-8" ?>
<configuration debug="true" scan="true" scanPeriod="30 seconds">
    
    
    
    
    
    <property name="LOG_HOME" value="D:/IdeaProjects/logbackDemo/log"/>
    
    <appender name="STDOUT"
              class="ch.qos.logback.core.ConsoleAppender">
        
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%npattern>
        encoder>
    appender>
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${LOG_HOME}/simple.logfile>
        <encoder>
            <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%npattern>
        encoder>
    appender>
    
    
    <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}.logfileNamePattern>
            <maxHistory>30maxHistory>
        rollingPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%npattern>
        encoder>
    appender>
    
    <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}.logfileNamePattern>
            <maxHistory>30maxHistory>
        rollingPolicy>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            
            
            <maxFileSize>1MBmaxFileSize>
        triggeringPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%npattern>
        encoder>
    appender>
    
    <appender name="FIXED_WINDOW_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/log_fixed_window_file.logfile>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <minIndex>1minIndex>
            <maxIndex>10maxIndex>
            
            <fileNamePattern>${LOG_HOME}/log_fixed_window_file.%i.log.zipfileNamePattern>
        rollingPolicy>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            
            <maxFileSize>20MBmaxFileSize>
        triggeringPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%npattern>
        encoder>
    appender>

    

    <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属性不需要填。