logback-spring.xml log configuration file

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <property name="logPath" value="E:/data/logs"/>
    <!--<property name="logPath" value="/data/logs"/>-->
    <property name="appName" value="joe-zookeeper"/>
    <property name="maxHistory" value="30"/>
    <property name="maxFileSize" value="10MB"/>
    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
            <!--formatted output: %d means date, %thread means thread name, %-5level: level is displayed from the left with 5 characters width %msg: log message, %n is a newline character -->
            <pattern>%date{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) %boldCyan([%thread]) 
                %boldGreen(%logger{50}) -
                %msg%n 
            </pattern> 
            <charset>UTF-8</charset> 
        </encoder> 
    </appender> 
    <!-- INFO log appender --> 
    <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
        <rollingPolicy class="ch.qos. logback.core.rolling.TimeBasedRollingPolicy"> 
            <!-- 
              The storage location and file name of the file generated during rolling%d{yyyy-MM-dd}: log rolling by day 
              %i: when the file size exceeds maxFileSize, follow i Perform file scrolling 
              --> 
            <FileNamePattern>${logPath}/${appName}/info.%d{yyyy-MM-dd}.log</FileNamePattern> 
            <!--Number of days to keep log files-->
            <MaxHistory>>${maxHistory}</MaxHistory> /MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
            <!--formatted output: %d means date, %thread means thread name,% -5level: Level displays 5 characters width from the left %msg: log message, %n is a newline character --> 
            <pattern> 
                %date{yyyy-MM-dd HH:mm:ss} %boldBlue(%-5level)% boldCyan([%thread]) %boldGreen(%logger{50})- 
                %msg%n 
            </pattern> 
            <charset>UTF-8</charset> 
        </encoder> 
        <!--Maximum log file size-- > 
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
            <MaxFileSize>${maxFileSize}</MaxFileSize>
        </triggeringPolicy>

        <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
            <!-- Only print INFO log--> 
            <level>INFO</level> 
            <onMatch>ACCEPT</onMatch> 
            <onMismatch>DENY< /onMismatch> 
        </filter> 
    </appender> 

    <!-- WARN log appender --> 
    <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
        <rollingPolicy class="ch .qos.logback.core.rolling.TimeBasedRollingPolicy"> 
            <!-- 
              The storage location and file name of the file generated during rolling%d{yyyy-MM-dd}: log rolling by day 
              %i: when the file size exceeds maxFileSize When, follow i for file scrolling 
              -->
            <FileNamePattern>${logPath}/${appName}/warn.%d{yyyy-MM-dd}.log</FileNamePattern> 
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <!--Number of days to keep log files-->
            <MaxHistory>>${maxHistory}</MaxHistory> 
        </rollingPolicy> 
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
            <!--formatted output: %d means date, %thread means Thread name, %-5level: Level is displayed from the left with 5 characters width %msg: Log message, %n is a newline character --> 
            <pattern> 
                %date{yyyy-MM-dd HH:mm:ss} %boldYellow(% -5level) %boldCyan([%thread]) %boldGreen(%logger{50})- 
                %msg%n 
            </pattern> 
            <charset>UTF-8</charset> 
        </encoder> 
        <!--The largest log file The size of --> 
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <MaxFileSize>${maxFileSize}</MaxFileSize>
        </triggeringPolicy>

            <!-- 只打印INFO日志 -->
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- ERROR日志 appender  -->
    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!
             -->
             %i: when the file size exceeds maxFileSize, file rolling is performed according to i
             storage location and file name of the file generated during rolling %d{yyyy-MM-dd}: log rolling by day--The 
            <fileNamePattern>${logPath}/${appName }/error.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- The largest history of the log-->
            <maxHistory>${maxHistory}</maxHistory> 
        </rollingPolicy> 
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
            <!--formatted output: %d means date, %thread means thread Name, %-5level: Level is displayed from the left with 5 characters width %msg: Log message, %n is a newline character --> 
            <pattern> 
                %date{yyyy-MM-dd HH:mm:ss} %boldRed(%- 5level) %boldCyan([%thread]) %boldGreen(%logger{50})- 
                %msg%n 
            </pattern> 
            <charset>UTF-8</charset> 
        </encoder> 
        <filter class="ch.qos .logback.classic.filter.LevelFilter"> 
            <!-- Only print error log-->
            <level>ERROR</level> 
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!-- 日志输出级别 -->
    <root level="ERROR">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="INFO"/>
        <appender-ref ref="WARN"/>
        <appender-ref ref="ERROR"/>
    </root>
</configuration>

Guess you like

Origin blog.csdn.net/qq_38428623/article/details/93186517