2012-08-07 52 views
5

我在Websphere App Server上託管的應用程序中使用Logback。 Logback被配置爲登錄到系統輸出(並且其他人不願意更改爲不同的文件)。問題在於Websphere使用自己的格式來登錄系統輸出。在我的應用程序執行的產量logger.debug("test")帶有Logback日誌記錄到系統的Websphere - 格式化問題

[8/7/12 12:27:55:629 CDT] 0000003a SystemOut  O DEBUG com.myapp... test 

這裏的一切到「O」是WebSphere添加。其餘是從Logback

我已經設置Logback使用以下模式:%-5level %logger{36} - %msg%n,以便我不重複Websphere自己做的時間戳和線程信息,但我仍然很煩,我不能完全在Logback中自定義系統輸出日誌。

關於日誌記錄的最佳實踐,我不太瞭解。之前,我已經通過網絡應用程序記錄了單獨的文件,但是對於這個項目,我被告知系統輸出文件由第三方監控,我不應該改變使用系統輸出。考慮到這些要求,是否有辦法解決我的問題,並告訴Websphere不要混淆我的系統輸出日誌,或者是開始記錄到其他文件的唯一解決方案?謝謝!

回答

2

我不認爲你將能夠改變格式。如果可以的話,它可能會破壞當前的監控。

我不知道是否有人會介意,如果你同時登錄到兩個記錄器,SystemOut爲現有的監測,而你自己的更可讀的格式。

+0

兩個記錄器是個好主意。開發團隊擁有自己的一個日誌文件和一個獨立的監控團隊會很好。 – 2012-08-09 13:55:50

3

您的logback配置爲將消息寫入System.out。但是,寫入System.out的所有內容都將被WebSphere重定向,並以與WebSphere生成的日誌消息相同的格式寫入SystemOut.log文件,但其嚴重性指示符爲「O」。這是不可能改變的。

請注意,告訴您使用SystemOut.log的人可能確實應該確保使用WebSphere日誌系統完成日誌記錄,以便使用正確的類別和嚴重性編寫消息,並且可以更改日誌級別在運行時。由於WebSphere的日誌系統建立在java.util.logging上,因此您可能應該用slf4j-jdk14替換logback以滿足其要求。

+0

他說他們需要SystemOut.log,因爲該文件是由第三方監控的,這對我來說並不奇怪。我們有自己監控日誌文件的外部工具,但我們可以告訴那些工具來監控其他文件。 (如果你可以說服第三方爲你監控一個額外的文件,那麼會更好,儘管如果格式不同,他們的監控也可能不得不改變。) – dbreaux 2012-08-08 20:11:14