1. 程式人生 > >logback配置方式

logback配置方式

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--
    scan:為true時,根據scanPeriod設定的時間來自動重新載入當前上下文配置(不指定時間單位時預設為毫秒)
    debug:為true時,輸出logback內部日誌資訊
-->
<configuration scan="true" scanPeriod="10 seconds">

    <!-- 上下文名稱 -->
    <contextName>test</contextName>
    <!-- 上下文屬性-變數,使用${}引用 -->
    <property name="logback.logs.path" value="C:/logback_log/logs/" />
    <!-- 獲取時間戳 -->
    <timestamp key="timestamp" datePattern="yyyyMMdd"/>  

    <!-- 控制檯日誌輸出器 -->
    <appender name="out-console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="UTF-8">
            <!-- 
                %level:日誌級別
                %date:日期輸出{輸出格式}
                %logger:日誌輸出位置
                %msg:日誌輸出內容
                %n:換行
                ${timestamp}:獲取時間戳
            -->
            <pattern>
                日誌級別:%level,時間:%date{yyyy-MM-dd HH:mm:ss},出處:%logger,內容:%msg%n
            </pattern>
        </encoder>
    </appender>
    
    <!-- 滾動檔案日誌輸出器 -->
    <appender name="out-file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 檔名稱 -->
            <fileNamePattern>${logback.logs.path}/logfile_%d{yyyyMMdd}.log</fileNamePattern>
            <!-- 日誌數量,超過15就清除 -->
            <maxHistory>15</maxHistory>
        </rollingPolicy>    
        <encoder charset="UTF-8">
            <pattern>
                日誌級別:%level,時間:%date{yyyy-MM-dd HH:mm:ss},出處:%logger,內容:%msg%n
            </pattern>
        </encoder>
    </appender> 
    
    
    <!-- 普通Logger:區域性配置 -->
    <!-- 當沒有指定level時,預設使用root的level級別 -->
    <logger name="com.test" level="DEBUG">
        <!-- 使用以下輸出器 -->
        <appender-ref ref="out-console" />
        <appender-ref ref="out-file" />
    </logger>

    <!-- 根logger:全域性配置 -->
    <root level="INFO"> 
        <!-- 使用以下輸出器 -->
        <appender-ref ref="out-console" />
        <appender-ref ref="out-file" />
    </root>

</configuration>

使用

package com.td;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Main {

    static Logger logger = LoggerFactory.getLogger(Main.class);

    /**
     * 日誌常用級別輸出:error > warn > info > debug > all
     */
    public static void main(String[] args) {
        
        logger.trace("Main-trace級別");
        logger.debug("Main-debug級別");
        logger.info("Main-info級別");
        logger.warn("Main-warn級別");
        logger.error("Main-error級別");
        
    }

}