tools.logback

https://logback.qos.ch/manual/index.html


 

Logback is built upon three main classes: LoggerAppender and Layout. These three types of components work together to enable developers to log messages according to message type and level, and to control at runtime how these messages are formatted and where they are reported.

The Logger class is part of the logback-classic module. On the other hand, the Appender and Layout interfaces are part of logback-core. As a general-purpose module, logback-core has no notion of loggers.


 

Logger is the boss, is a project manager, a team leader, they log the credit is theirs.

Appender programmers, code is agriculture, responsible work, stay up all night.

Layout is art.


 

A configuration example:

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

    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <!-- 控制台输出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level> <!-- 日志过滤级别 -->
        </filter>
        <encoder>
            <pattern>%date %-5level [${HOSTNAME} %thread] : %msg%n%n</pattern><!-- 格式化输出 -->
            <charset>utf8</charset> <!-- 输出编码 -->
        </encoder>
    </appender>

    <!-- 文件输出 -->
    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>DATE -5level%% [%} $ {HOSTNAME Thread]: n-% MSG% </ pattern > <! - formatted output -> 
            < charset > UTF8 </ charset >  <! - output code -> 
        < / Encoder > 
        < file > ./logs/info1.log </ file > <-! file storage path -> 
        < rollingPolicy class = "ch.qos.logback.core.rolling.TimeBasedRollingPolicy" > 
            < fileNamePattern > / logs /info/%d{yyyy-MM-dd}.log </fileNamePattern><!--Archive day -> 
            < maxHistory > . 7 </ maxHistory > <-! Log storage period (days) -> 
        </ rollingPolicy > 
    </ the appender > 

    <-! Error log file output -> 
    < the appender name = " ERROR_FILE " class =" ch.qos.logback.core.rolling.RollingFileAppender " > 
        < filter class =" ch.qos.logback.classic.filter.ThresholdFilter " > 
            < Level > ERROR </ Level >  <!- Log filtering level -> 
        </filter > 
        < Encoder > 
            < pattern > % DATE% -5level [$ {HOSTNAME} Thread%]:% MSG% n-n-% </ pattern > <-! formatted output -> 
            < charset > UTF8 </ charset >  <! - output code -> 
        </ encoder > 
        < file > ./logs/error1.log </ file > <! - file storage path -> 
        < rollingPolicy class = "ch.qos.logback.core. rolling.TimeBasedRollingPolicy " >
            <fileNamePattern > /logs/error/%d{yyyy-MM-dd}.log </ fileNamePattern > <-! Archive day -> 
            < maxHistory > . 7 </ maxHistory > <-! log storage period (days) - -> 
        </ rollingPolicy > 
    </ the appender > 


    <-! root log output level -> 
    < the root level = "the INFO" > 
        < the appender REF- REF = "the CONSOLE" /> 
    </ the root > 

    < Logger name = "COM .tl.ts.service.impl" level="error" additivity="false">
        <appender-ref ref="ERROR_FILE"/>
    </logger>

    <logger name="com.tl.ts.service.impl" level="info" additivity="false">
        <appender-ref ref="INFO_FILE"/>
        <appender-ref ref="ERROR_FILE"/>
    </logger>

</configuration>

 

Guess you like

Origin www.cnblogs.com/luohaonan/p/11577389.html