繁体   English   中英

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

[英]How to configure Log4J when deploying an OSGi app with the Equinox Servle Bridge to Tomcat?

当使用 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.

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

  • 将上下文参数“log4jConfigLocation”添加到 servlet 桥 web.xml
  • 在 WEB-INF 文件夹中创建一个文件夹“classes”并将我的 log4j.properties 文件复制到那里(并将其复制到其他几个位置)
  • removing my log4j bundle and setting "extendedFrameworkExports" to org.apache.log4j so (I guess) the tomcat log4j is used... this did not work because my dependencies need some slf4j classes which are provided as a fragment for the log4j bundle. ..这已经不存在了...

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

补充我应该补充一点,我正在 Eclipse... 中开发应用程序,而我的片段包配置 log4j / slf4j 在那里工作。

有没有人解决这个问题? 有任何想法吗?

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

我遇到了同样的问题,我将log4j.properties添加到我的/src文件夹中。

更新:这对您的问题没有帮助......

我自己只是在研究 OSGi。

不完全是您要寻找的内容,但以下帖子讨论了使用 vanilla equinox 时的相同问题(即:不在 tomcat/jetty 中托管)。

它建议创建一个“片段包”(可供下载的示例)来保存您的 log4j.properties。 也许你可以尝试类似的东西?

或者也许您只需将log4j.properties放在 WAR 的META-INF中?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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