Spring動態自定義logback日誌目錄

Spring動態自定義logback日誌目錄

@Date 2018.10.18

問題場景

在業務開發中, 遇到一個場景. 日誌目錄需要根據不同的一個業務id存儲. 故需要動態存儲logback的日誌

解決辦法

在springboot中, 或者spring相關框架中, 可以通過實現logback的PropertyDefinerBase方法來動態決定日誌目錄.

// 通過實現logback的PropertyDefinerBase方法,動態定義logback配置中的變量
@Component
public class DefineDir extends PropertyDefinerBase {

    @Override
    public String getPropertyValue() {
        return "動態參數";
    }
}
<configuration>

    // 通過DefineDir類映射自定義變量, 實現動態修改logback的日誌目錄
    <define  name="dirXxx" class="com.xxx.DefineDir" />

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>../logs/${dirXxx}/info.log</file>
        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d{yyyy/MM/dd HH:mm:ss.SSS} [%thread] [%X{requestId}] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="FILE" />
    </root>
</configuration>

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