在使用Equinox Servle Bridge将OSGi应用程序部署到Tomcat时,如何配置Log4J?

art*_*urh 5 java tomcat osgi log4j equinox

使用equinox servlet桥部署我的OSGi Web应用程序时,我得到以下内容:

log4j:WARN No appenders could be found for logger (org.springframework.osgi.extender.internal.activator.ContextLoaderListener).
log4j:WARN Please initialize the log4j system properly.
Run Code Online (Sandbox Code Playgroud)

我尝试了几种提供必要的"log4j.properties"文件的方法,包括:

  • 将context-param"log4jConfigLocation"添加到servlet桥web.xml
  • 在WEB-INF文件夹中创建一个文件夹"classes"并将我的log4j.properties文件复制到那里(并将其复制到其他几个位置)
  • 删除我的log4j包并将"extendedFrameworkExports"设置为org.apache.log4j所以(我猜)使用了tomcat log4j ...这不起作用,因为我的依赖需要一些slf4j类,它们作为log4j包的片段提供. ..不再存在......

当然我也有一个片段包,用log4j.properties文件扩展log4j包,但看起来这个log4j包没有被使用.

补充:我应该补充一点,我正在Eclipse中开发应用程序......我的片段包用于配置log4j/slf4j.

有人解决了这个吗?有任何想法吗?

art*_*urh 3

我发现了我的错误。应该提供 log4j.properties 文件的片段不包含它,因为我没有将它添加到 build.properties 中的二进制构建中。