我有一个Spring Boot项目,它依赖于第三方库。该库使用SLF4J和Log4j2进行日志记录,并且具有定义了模式布局的log4j2.xml。
问题是这个依赖项的模式布局被用作我的应用程序的模式,忽略了application.properties中定义的布局。
如果我无法修改此第三方lib的源代码,是否可以配置我的应用程序以忽略log4j2.xml?
答案 0 :(得分:1)
您可以尝试的一种解决方案是定义自己的log4j2
配置文件,并在log4j.configurationFile
系统属性中提供其路径。定义自己的log4j2
配置文件时,可以控制所需的日志记录数以及模式。
背后的原因是 - 当Log4j
启动时,它会尝试找到所有ConfigurationFactory
个插件,并按照从最高到最低的加权顺序排列它们。根据{{3}},设置系统属性log4j.configurationFile
的权重最高。
如果log4j
使用此系统属性找到配置文件,则它不会扫描类路径以查找依赖库中存在的log4j2.xml
文件。