我正在构建一个spring-boot启动程序,以便为我们的交付团队自动配置logback。基本上,我发布了一组预先配置的logback appender,可以通过属性启用和配置。
目标是:
logging.level
设置的常规属性和记录器级别来调整Appenders行为(例如dev VS prod)。我希望大多数用户都会想要和做。logback(-spring)?.xml
来扩充默认行为。您必须包含starter的logback配置文件。我的问题是我没有找到 clean 方法来实现这样的库。我目前的解决方案是注册一个在LoggingApplicationListener
之前运行的应用程序监听器。如果未设置logging.config
且未找到任何回溯配置文件,则logging.config
将设置为库的配置文件。否则,它什么都不做。
有没有那么简单的方法呢?
答案 0 :(得分:0)
可以在src / main / resources中拥有自己的logback-spring.xml文件。作为一个工作示例,在这里拍摄一张pic,其中包含用于JSON日志输出的自定义appender:
<?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>
&#13;