2010-02-24 258 views
7

我們有幾個使用log4j進行日誌記錄的應用程序。我需要得到一個log4j分析器,因此我們可以合併多個日誌文件並對它們進行自動分析。我不想重新發明輪子,所以有人可以指向我一個體面的預先存在的解析器?如果有幫助,我確實有log4j轉換模式。解析log4j日誌文件

如果不是,我將不得不推出我們自己的。

回答

8

我沒有意識到log4J附帶一個XML appender。解決方法是:在日誌記錄配置文件中指定一個xml appender,將該輸出xml文件作爲實體包含到格式良好的xml文件中,然後使用您最喜歡的技術來解析xml。

其他方法有以下限制:

  • 電鋸 - 不是自動不夠
  • JDBC - 表現不佳的高性能分佈式應用
2

你在找什麼叫SawMill這樣的東西

+1

+1鏈接。應該提及的是,Sawmill不是免費的。 – 2011-09-19 20:55:30

1

Log4j日誌文件不太適合解析,它們太複雜,沒有結構。有一些第三方工具可以做到,我相信(例如Sawmill)。

如果您需要對日誌執行自動化的自定義分析,則應考慮記錄到數據庫並分析該數據庫。 JDBC隨附JdbcAppender,它將所有消息附加到您選擇的數據庫中,但它具有性能影響,並且有點片面。儘管(如this one),interweb上還有其他類似的替代方案。

0

您-can-使用Log4j的電鋸V2來處理各種日誌文件,並把它們收集到一個表中,無論是輸出這些事件爲XML或使用電鋸內置的基於表達式的篩選,搜索&着色支持切片&骰子的日誌。

步驟: - 啓動電鋸V2 - 從歡迎選項卡複製示例配置文件可創建一個電鋸配置文件 - 定義一個LogFilePatternReceiver「插件」對於要處理 每個日誌文件條目 - 啓動電鋸使用該配置 - 每個日誌文件最終將作爲UI中的單獨選項卡 - 暫停鏈鋸日誌選項卡並清除該選項卡中的事件 - 創建一個新選項卡,通過轉到'view,crate custom expression logpanel'菜單項並在框中輸入'level> = DEBUG'。它會創建一個新的選項卡,其中包含來自所有等級> = debug的選項卡的事件(這就是您清除鋸鏈選項卡的原因)。

您可以從教程中獲得用於過濾,着色和搜索的表達式語法的概述(可從「幫助」菜單獲得)。

如果您不想使用Chainsaw,您可以執行類似操作 - 啓動一個簡單的應用程序,該應用程序不會記錄日誌,但會爲您爲Chainsaw配置定義的「插件」條目加載log4j.xml配置文件,還要定義一個帶有xmllayout的FileAppender - 「接收者」接收到的所有事件將被髮送給單個appender。