我開始開發一個Eclipse插件(技術上,一個OSGi插件),我遇到的第一個問題之一是我似乎無法控制公共日誌輸出爲我通常會。登錄Eclipse/OSGi插件
我已經在插件依賴關係中包含了commons-logging軟件包,實際上,當我記錄某些內容(INFO或更高嚴重級別)時,它將記錄到控制檯。但是,我似乎無法登錄到任何較低級別(如DEBUG或TRACE)。
我已經指定了一個log4j.properties文件,並且它在類路徑上(對於運行時,就像commons-logging軟件包一樣),但是該屬性文件中的設置都不會對該行爲產生任何影響記錄儀。
這裏的log4j.properties文件:
# 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.util.logging的默認一致,或者給別人提供其他提示:
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
更新:
我現在已嘗試過各種組合:
- org.osgi.service.log.LogService et al。
- slf4j
- Log4J
- Commons-logging
- java.util.logging
,我可以僅得到DEBUG,或更低,級消息到如果我手動從提示符下運行的OSGi(這是出現對於我正在開發的東西不切實際)。此外,我不能通過各種屬性文件影響任何其他類型的日誌記錄配置。我在這方面嘗試的一切似乎都被日食設置所覆蓋。
我也試過把上述庫的各種配置文件放在很多地方,包括作爲建議here附加到它們各自的庫的插件片段,仍然會發生相同的結果。
我實現了一個自定義的LogListener和跟蹤日誌消息的整個路徑(以及我知道怎麼回事,反正)用的System.out.println的和調試消息是目前的權利,直到他們由我使用的任何基礎日誌API輸出,然後它們消失。
@rcreswick可以請你讓我知道哪裏有您將log4j.properties文件放入插件中 – VamsiKrishna 2012-08-01 10:37:57