这是一个后续行动(某种方式是我的Third-party dependencies to an OSGi application),其中有人建议使用某些库,例如log4j 已经可用作为捆绑包
在Eclipse Indigo中,作为安装的一部分,我找不到Import Package
可用的log4j软件包,因此我创建了一个Plugin Project from JAR archive
来捆绑log4j,还创建一个Feature Project
来捆绑log4j.xml
} post之后的配置。
说实话,我不明白为什么需要片段项目,但这个过程是有效的
所以我现在的问题是:
由于log4j.xml
作为功能jar的一部分在导出中提供,因此需要一些“努力”才能找到它并更新调试级别,所以我想知道这确实是正确的过程吗?
我记得最终导出的产品会在一个易于查找的位置提供log4j配置,但现在(虽然记录工作)我担心我做的是否确实是正确的。
这里有任何帮助吗?
答案 0 :(得分:2)
如果你真的需要公开文件,你可以把它放在任何你想要的地方,然后确保你的程序在启动时调用这些方法之一:
如果您想在不重新启动应用程序的情况下更改配置,请使用“configureAndWatch”变量。
编辑:我写了“如果你真的需要”,因为我经历过,我从不需要在部署后打开调试日志,因为它总是打开!对于我对响应时间和吞吐量有正常(但不是极端)要求的应用程序,这是可以的。记录到UDP-appender很快(并且不会填满磁盘)。或者使用滚动文件appender是非常安全的,并且足够快我的使用。在确定那些难以重现的错误时,始终使用调试日志可以节省生命。
答案 1 :(得分:1)
我建议看看Pax-Logging 这将为您提供在OSGi环境中使用的各种日志框架。并且您可以使用外部配置文件(无需扩展程序)来配置日志记录。
答案 2 :(得分:1)
该片段是扩展log4j bundle类路径以包含所需配置文件的一个选项。它可能是配置应用程序范围属性的最简单方法。
这并不意味着在部署后会被更改,因为它将嵌入在jar文件中。如果您希望在部署后使其可配置,则必须提出不同的方法。
注意:强> 我担心你误解了已经作为捆绑包装的罐子的答案。这并不意味着它们是您选择的OSGi平台(Indigo)的一部分,只是它们已经准备好按原样部署到OSGi平台。您不需要创建插件项目,只需将jar添加到目标平台即可解决丢失的导入问题。