我的Eclipse应用程序包括一个封装第三方框架的插件。这个框架是一个纯OSGi系统,使用SLF4J。我自己的应用程序使用log4j 2,它工作得很好。第三方框架似乎承认“我的”log4j 2很好,但是触发了通常的ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.消息。
将log4j2.xml文件添加到src/main/resources文件夹(是的,并将其添加到构建中)没有任何效果。
如何为第三方框架的SLF4J实例提供配置文件?我认为我无法访问它的类路径,我希望避免设置log4j.configurationFile系统属性。后者主要是因为我不知道如何让它指向相对于我的应用程序主页的文件夹,这里的提示可能只是我想要的解决方案。将属性设置为绝对路径可以很好地工作。
发布于 2015-07-31 08:59:35
在重新考虑为log4j 2配置文件设置系统属性时,我找到了一个相对简单的解决方案。
当我在我的应用程序入口(核心)插件的Activator的start方法中包括以下内容时,它工作得很好,也就是说,在我可以访问相对于我的应用程序启动程序的路径的地方,以编程方式设置系统属性。注意,核心插件的配置文件没有问题,只有第三方框架。
// Configure log4j2 configuration file to be found
System.setProperty("log4j.configurationFile",
getBundle().getResource("log4j2.xml").getPath());发布于 2015-07-31 06:54:06
试一试
String fileName = "config/log4j2.xml";
Configurator.initialize(null, fileName);对SJLF来说
https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/index.html
只需在类路径中包含log4j-slf4j-impl-2.0.jar
https://stackoverflow.com/questions/31733406
复制相似问题