繁体   English   中英

如何从库中替换Spring Boot的默认logback配置?

[英]How to replace Spring boot's default logback config from a library?

我正在构建一个弹簧启动启动器,以自动为我们的交付团队配置登录。 基本上,我附带了一组可以通过属性启用和配置的预配置的logback附加程序。

目标是:

  • 将starter添加到依赖项后,将自动配置logback。 可以使用常规属性和使用logging.level设置的记录器级别来调整Appender的行为(例如dev VS prod)。 我希望大多数用户都愿意做。
  • 通过提供自己的logback(-spring)?.xml可以增强默认行为。 您必须包括启动程序的logback配置文件。
  • 通过提供您自己的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM