簡體   English   中英

Equinox應用程序:log4j損壞的Eclipse控制台輸出

[英]Equinox app: log4j broken eclipse console output

我正在通過我現在正在構建的Eclipse插件項目中的非常簡單的設置來使用log4j。 我叫BasicConfigurator.configure(); 在主類中,然后在每個類中使用log4j,如下所示:

private static final Logger logger= LogManager.getLogger(ClassName.class.getName());

一段時間內效果很好,但是現在我遇到了log4j的問題。 我不確定發生了什么,但是日志記錄級別現在是Level.WARN。 控制台輸出也有些損壞。 日志消息每次記錄兩次。 一次正常,一次真的很奇怪:

!ENTRY org.apache.log4j 2 0 2017-01-10 13:19:58.192
!MESSAGE package.ClassName  - This is a logging message

0 [main] WARN package.ClassName  - This is a logging message

我不使用屬性或xml文件,所以無法想象更改了什么。

編輯:我簽出了該程序的較舊的點,問題仍然存在。 那應該意味着這不是代碼本身的問題。 Eclipse設置或類似設置會影響控制台行為嗎?

編輯2:取消選中“限制控制台輸出”的想法沒有幫助。

編輯3:這些是我的依賴項:

 Require-Bundle: org.eclipse.ui,
     org.eclipse.emf.ecore;bundle-version="2.12.0",
     org.eclipse.emf.ecore.xmi;bundle-version="2.12.0",
     org.eclipse.core.resources;bundle-version="3.11.0",
     org.eclipse.core.runtime;bundle-version="3.12.0",
     org.eclipse.jdt.core;bundle-version="3.12.1",
     org.eclipse.jdt.launching;bundle-version="3.8.100",
     org.junit,
     org.apache.log4j;bundle-version="1.2.15"

編輯4:干凈的Eclipse版本修復了輸出問題。 但是使用干凈版本意味着要重新安裝所有插件和工具。 另外,我還必須從頭開始配置我的首選項。 也許那又會引起問題,所以我寧願找出問題的原因。

嘗試從my_package記錄器語句中刪除“ trace_file”指令。

試試這個

 static {
    PatternLayout layout = new PatternLayout();
    String conversionPattern = "%d %-5p [%t] %c{2} (%2F:%M(%L)):%m%n";
    layout.setConversionPattern(conversionPattern);

    ConsoleAppender consoleAppender = new ConsoleAppender();
    consoleAppender.setLayout(layout);
    consoleAppender.activateOptions();

    Logger rootLogger = Logger.getRootLogger();
    rootLogger.setLevel(Level.INFO);
    rootLogger.addAppender(consoleAppender);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM