[英]How to replace Spring boot's default logback config from a library?
我正在構建一個彈簧啟動啟動器,以自動為我們的交付團隊配置登錄。 基本上,我附帶了一組可以通過屬性啟用和配置的預配置的logback附加程序。
目標是:
logging.level
設置的記錄器級別來調整Appender的行為(例如dev VS prod)。 我希望大多數用戶都願意做。 logback(-spring)?.xml
可以增強默認行為。 您必須包括啟動程序的logback配置文件。 我的問題是我還沒有找到一種實現此類庫的干凈方法。 我當前的解決方案是注冊一個運行在LoggingApplicationListener
之前的應用程序偵聽LoggingApplicationListener
。 如果未設置logging.config
且未找到任何logback配置文件,則logging.config
將設置為庫的配置文件。 否則,它什么都不做。
有沒有那么簡單的方法呢?
可以在src / main / resources中擁有自己的logback-spring.xml文件。 作為工作示例,請在此處拍攝帶有JSON日志輸出的自定義附加程序的圖片:
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="10 seconds"> <include resource="org/springframework/boot/logging/logback/base.xml"/> <springProperty scope="context" name="jsonFile" source="logging.json.file"/> <springProperty scope="context" name="jsonLevel" source="logging.json.level"/> <springProperty scope="context" name="jsonSize" source="logging.json.size"/> <appender name="jsonAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${jsonFile}</File> <encoder class="net.logstash.logback.encoder.LogstashEncoder"/> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <maxIndex>1</maxIndex> <fileNamePattern>${jsonFile}.%i</fileNamePattern> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>${jsonSize}</MaxFileSize> </triggeringPolicy> </appender> <root level="${jsonLevel}"> <appender-ref ref="jsonAppender"/> </root> </configuration>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.