我开始发展一个日食的插件(从技术上讲,一个访插件)和第一个问题,我们遇到的是我似乎无法控制公共记录输出,因为我通常会。

我已经包含的公共记录包插件的依赖性,而事实上,当我日志的东西(在信息或更高的严重程度)也是登录控制台。然而,我似乎无法登录在任何较低的水平(例如"调试"或跟踪).

我已指定一个log4j.性文件,它是在类路径(为运行时,只是作为公共记录包),但没有设置,性质文件具有任何影响的行为的记录。

这里的log4j.性文件:

#  Log4j Logging levels, in order of decreasing importance are:
#   FATAL, ERROR, WARN, INFO, DEBUG, TRACE
#

# Root logger option
log4j.rootLogger=ERROR,stdout
#,LOGFILE

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %r (%l) %t%n - %m%n

我需要做什么这样做,我实际上可以控制输出的记录?

这里是一些样品输出的消息,在希望的格式可以配合的默认java。工具.日志记录,或者提供其他提示,一个人:

Oct 21, 2008 11:01:23 PM com.stottlerhenke.sentinel.client.Activator start
SEVERE: fatal_message
Oct 21, 2008 11:01:23 PM com.stottlerhenke.sentinel.client.Activator start
WARNING: warn_message
Oct 21, 2008 11:01:23 PM com.stottlerhenke.sentinel.client.Activator start
INFO: info_message

更新:

我现在已经尝试了各种组合:

和我可以 获得调试,或更低级别的消息显示,如果我运行的访手从一个提示(这是不切实际的什么我的发展中).此外,我不能影响任何其他类型的记录结构通过各种性质的文件。我尝试在这方面似乎可以复盖一个日食的设置。

我们还试图把各种配置文件于上述图书馆在许多地方,包括作为插片断连接到其各自的库的建议 在这里,, ,并且仍然同样的结果发生的情况。

我已经实现了一个自定义LogListener,并追踪对整个路径的一个日志的消息(以及我知道怎么样,反正)与系统。出。释放的,并调试的消息 本权利,直到他们是输出任何潜在的记录API我使用,那么它们就会消失。

有帮助吗?

解决方案

3天之后...

我找到问题所在!有两件事情我需要做的,首先,有一个问题有一个清单。MF文件:

我有下列在清单中。MF为一种捆绑:

Bundle-ClassPath: lib/jena.jar,
 .,
 org.apache.log4j-1.2.12.jar,
 lib/google-collect-snapshot.jar
Import-Package: com.acme.client.translation,
 com.acme.translation.interfaces,
 com.acme.shared.osgi,
 com.acme.utilities

应该 有了这样的:

Bundle-ClassPath: lib/jena.jar,
 .,
 lib/google-collect-snapshot.jar
Import-Package: com.acme.client.translation,
 com.acme.client.translation.interfaces,
 com.acme.shared.osgi,
 com.acme.utilities,
 org.apache.log4j

关键的区别是,log4j正在被用作为一个整体,当它应该被用作一束。(我有一个log4j罐子在我的lib dir从当我有预期Log4j到"工作"与访.) 罐子 工作排序。它显然发现了一些蚀级log4j配置和使用。由于这只是一个瓶子(不一捆)它没有使用任何片段,可以指定记录的配置,这导致我们其他的事情已经发生:

我需要设立一束片段指定的日志记录的配置。 这个链接VonC 给我的信息做到这一点。这需要做许多事情,不幸的是,包与不正确的清单。MF仍然有log4j罐中指定捆类路径,这似乎复盖的进口包装的清单。

我终于想出了什么事,当我需要记录在另一捆(我刚刚给了在这一点上,回去以使用记录在警告水平高。) 这个新束找不到记录的配置!(所以后来我有三束运行在相同的访的环境中,各有不同log4j行为--一个使用我的片段设置的,另一个采用一些随机的日食日志设置,最后的新束,没有任何记录config。) 详细的比较,这三束揭示的差别明显。MF文件,而现在它们都使用的片段束。

我欠了 巨大的 由于提交人的许多 日食区, VonC, Ekkes, 和大家在日食freenode他们的帮助和耐心:)

其他提示

这不是一个实际的回答你的问题,但是你可能找到一些线索在这 设定的条款通过ekke.

我想你已经读"使用Log4J在日食Equinox/访":

你有没有推出一个访届会议在控制台模式?

java -jar org.eclipse.osgi_3.3.0.v20070530.jar -console -noExit -clean

这样,你可以试log4j在一个纯粹的访的环境,并检查它的工作。

让我们使用知道如果你找到一个解决方案(布它作为一个答案),和我将表决它;)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top