【问题标题】:Proper way to include log4j in an Eclipse 4 (RCP/SWT/OSGi) application在 Eclipse 4 (RCP/SWT/OSGi) 应用程序中包含 log4j 的正确方法
【发布时间】:2012-09-21 12:33:05
【问题描述】:

这是一个后续(不知何故我的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 配置,但现在(尽管日志记录有效)我担心我所做的是否确实正确。

这里有什么帮助吗?

【问题讨论】:

    标签: java eclipse plugins eclipse-plugin osgi


    【解决方案1】:

    如果你真的需要公开文件,你可以把它放在你想要的任何地方,然后确保你的程序在启动时调用这些方法之一:

    • org.apache.log4j.xml.DOMConfigurator.configure(字符串文件名)
    • org.apache.log4j.PropertyConfigurator.configure(String 配置文件名)

    如果您想在不重新启动应用程序的情况下更改配置,请使用“configureAndWatch”变体。

    编辑:我写“如果你真的需要的话”,因为我经历过部署后我永远不需要打开调试日志,因为它总是打开的!这对于我对响应时间和吞吐量有正常(但不是极端)要求的应用程序来说是可以的。记录到 UDP-appender 很快(并且不会填满磁盘)。或者使用滚动文件附加程序非常安全,并且足够快以供我使用。在确定那些难以重现的错误时,始终拥有可用的调试日志是一种救命稻草。

    【讨论】:

    • 我会试试这个,但你为什么说“如果你真的需要..”?log4j 中的想法是最终用户可以在需要时打开/关闭调试。不确定是什么你的观点。
    • 我已经更新了我的答案,澄清了,感谢您指出,Cratylus。 :-)
    • 始终调试?这取决于应用程序以及正在完成多少日志记录
    • 是的,这取决于您的具体情况以及正在执行多少日志记录。我的意思是,我惊讶地发现我们可以启用多少日志记录,并且仍然没有对我们的应用程序的性能产生明显的负面影响。所以对于那些以前没有尝试过的人来说值得尝试,因为他们假设(但不知道)他们的应用程序会很慢。
    【解决方案2】:

    片段是扩展 log4j 捆绑类路径以包含所需配置文件的一种选择。这可能是配置应用程序范围属性的最简单方法。

    这并不意味着在部署后进行更改,因为它将嵌入到 jar 文件中。如果您希望在部署后使其可配置,您将不得不提出一种不同的方法。

    注意: 恐怕您误解了关于已经作为捆绑包提供的罐子的答案。这并不意味着它们是您选择的 OSGi 平台 (Indigo) 的一部分,只是它们已准备好按原样部署到 OSGi 平台。您无需创建插件项目,您只需将 jar 添加到目标平台即可解决丢失的导入问题。

    【讨论】:

    • 1) 但是使用log4j 是不是很自然地期望log4j.xml 会在部署后更新?有什么不同的方法?日志记录通常会做什么?2)我读过使用目标平台是一种不好的做法,因为我可能在部署中遇到问题。我错了吗?
    【解决方案3】:

    我建议看一下Pax-Logging ,这将为您提供在 OSGi 环境中使用的各种日志框架。而且您可以使用外部配置文件(无需扩展器)来配置您的日志记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-06
      • 2010-10-08
      • 1970-01-01
      • 2013-11-11
      • 1970-01-01
      相关资源
      最近更新 更多