5

使用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 文件复制到那里(并将其复制到其他几个位置)
  • 删除我的 log4j 包并将“extendedFrameworkExports”设置为 org.apache.log4j 所以(我猜)使用了 tomcat log4j ...这不起作用,因为我的依赖项需要一些作为 log4j 包的片段提供的 slf4j 类。 ..不再存在了...

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

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

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

4

3 回答 3

3

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

于 2009-04-02T12:47:52.633 回答
3

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

于 2009-04-27T07:08:15.453 回答
2

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

我自己只是在研究 OSGi。

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

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

或者也许你只需要把你的 WAR放在log4j.properties里面?META-INF

于 2009-04-01T15:18:38.830 回答