sl4j日誌配置

  由於logback性能優,加載速度快,且能自動清理和壓縮等優點。記錄一下個人在使用時配置。

1、去掉pom.xml中所有的log4j2相關的引用(否則配置不生效)

2、配置logback.xml文件

<?xml version="1.0" encoding="utf-8"?>
<!--級別從高到低 OFF -> FATAL -> ERROR -> WARN ->INFO -> DEBUG ->TRACE -> ALL -->
<!--日誌輸出規則,根據root配置級別,日誌輸出時,級別高於root的級別時纔會輸出-->
<!--配置每個filter 過濾掉輸出文件裏面,會出現高級別日誌-》低級別的日誌,通過filter配置日誌輸出級別,-->
<!--scan屬性爲true時,當配置文件發生改變,將會被重新加載,默認爲true
    scanPeriod設置檢測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認是毫秒,當scan爲true時,此屬性生效。默認時間爲1分鐘
    debug 當此屬性爲true時,將打印出logback內部日誌信息,實時查看logback運行狀態,默認爲false-->
<configuration scan="true"  scanPeriod = "60 seconds" debug = "false">
    <!--動態日誌級別-->
    <jmxConfigurator/>
    <!--定義日誌文件輸出位置-->
    <property name="log_dir" value="E:/logs/imoslog/ICM"/>
    <!--<property name="log_dir" value="/var/log/imoslog/ICM"/>-->
    <!--日誌輸出格式-->
    <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n "/>\
    <!--控制檯日誌輸出格式-->
    <property name="debug.log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %boldYellow(%thread) %boldGreen(%logger{50}-%msg%n)"/>
    <!--ConsoleAppends控制檯輸出日誌-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${debug.log.pattern}</pattern>
        </encoder>
    </appender>
    <!--ERROR級別日誌-->
    <!--滾動記錄日誌文件,將日誌記錄到日誌文件-->
    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--過濾器,日誌級別等於配置的級別時會根據onMatch 和 onMismatch 接受或拒絕日誌-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <!--滾動策略,最常用的就是根據時間來制定滾動策略,觸發滾動-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日誌輸出位置,按天滾動並壓縮-->
            <fileNamePattern>${log_dir}/info/info.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <!--可選節點,控制保留的歸檔文件的最大數量,查出數量就刪除舊文件-->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
                <maxFileSize>20MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日誌最大留存期-->
            <maxHistory>360</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!--INFO級別日誌-->
    <!--滾動記錄日誌文件,將日誌記錄到日誌文件-->
    <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--過濾器,日誌級別等於配置的級別時會根據onMatch 和 onMismatch 接受或拒絕日誌-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <!--滾動策略,最常用的就是根據時間來制定滾動策略,觸發滾動-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日誌輸出位置,按天滾動並壓縮-->
            <fileNamePattern>${log_dir}/error/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <!--可選節點,控制保留的歸檔文件的最大數量,查出數量就刪除舊文件-->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
                <maxFileSize>20MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日誌最大留存期-->
            <maxHistory>360</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <root level="debug">
        <appender-ref ref="console"/>
        <appender-ref ref="INFO" />
        <appender-ref ref="ERROR" />
    </root>

</configuration>

3、application.properties配置

logging.config=classpath:spring-logback.xml

4、日誌打印

  private final static Logger logger = LoggerFactory.getLogger(StudyApplication.class);
    public static void main(String[] args) {
        logger.info("項目啓動......................");
        SpringApplication.run(StudyApplication.class, args);
        logger.info("項目運行中......................");
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章