忽略依赖项的日志模式

时间:2017-09-29 19:23:56

标签: java spring spring-boot slf4j log4j2

我有一个Spring Boot项目,它依赖于第三方库。该库使用SLF4J和Log4j2进行日志记录,并且具有定义了模式布局的log4j2.xml。

问题是这个依赖项的模式布局被用作我的应用程序的模式,忽略了application.properties中定义的布局。

如果我无法修改此第三方lib的源代码,是否可以配置我的应用程序以忽略log4j2.xml?

1 个答案:

答案 0 :(得分:1)

您可以尝试的一种解决方案是定义自己的log4j2配置文件,并在log4j.configurationFile系统属性中提供其路径。定义自己的log4j2配置文件时,可以控制所需的日志记录数以及模式。

背后的原因是 - 当Log4j启动时,它会尝试找到所有ConfigurationFactory个插件,并按照从最高到最低的加权顺序排列它们。根据{{​​3}},设置系统属性log4j.configurationFile的权重最高。

如果log4j使用此系统属性找到配置文件,则它不会扫描类路径以查找依赖库中存在的log4j2.xml文件。

相关问题