2011-09-16 69 views
5

目前我正面臨從分佈式系統中彙總多個日誌文件的問題。記錄到消息隊列是個好主意嗎?

但是由於大多數應用程序都是使用log4j的Java應用程序,並且所有應用程序都使用JMS,所以我想直接登錄到消息隊列而不是複製單個日誌文件。

這是一個好主意,或者可以適應這種逆火嗎?

+0

取決於日誌文件數量,大小和頻率。即:如果你確定日誌不會殺死你的服務器,那就去做吧。 – c69

回答

2

一對夫婦的寬鬆思路:

  • 性能已經提到—打開詳細的調試信息,在生產環境中可能被證明是不可能的(如果事實證明你需要跟蹤的深深隱藏的錯誤),
  • 你失去log4j的翻轉行爲,你必須在你收集日誌語句的地方自己實現它,
  • 添加進程/機器特定的信息到日誌行(除非它很明顯,否則哪個應用程序發出哪個日誌行),
  • 考慮在每個應用程序中添加一個遞增的日誌行計數器,如果您絕對需要知道發佈日誌語句的順序—不保證郵件遞送順序並且log4j中的時間戳記只有毫秒遞增
  • 有效分析這樣龐大的文件可能需要很好的(和付費的,甚至是自定義的)日誌查看器。
1

如果你想這樣做,我會登錄到兩者。這樣,如果您必須對JMS日誌記錄進行故障診斷,那麼您將擁有一個log4j日誌。由於您將主要使用JMS日誌,因此只需配置log4j appender以使日誌文件保持較小。

相關問題