2013-05-31 51 views
3

我正在編寫一個複雜的應用程序(編譯器分析)。爲了調試它,我需要檢查應用程序的執行軌跡,以確定它的值和數據結構在執行過程中的演變過程。對於單次運行生成兆字節的文本輸出並篩選通過非常耗費人力的所有內容,這是很常見的。爲了幫助我管理這些日誌,我編寫了我自己的庫,它們用HTML格式化它們,並使來自不同代碼區域的文本變得容易,並在調用的函數中縮進代碼。輸出的一個例子是here結構化調試日誌

我的問題是:有沒有比我自己的家紡庫更好的解決方案?我需要一些方法來發出可能包含任意文本和圖像的調試日誌,並以可視化的方式構建它們,如果可能的話,將它們編入索引,以便我可以輕鬆找到我最感興趣的輸出區域。有沒有這樣的事情?

+0

我在這方面做了研究〜10年前。你所擁有的和我所見過的一樣好;我特別喜歡HTML版本。我的建議是試用不同的方法來表徵每條痕跡。一個可能是產生一個光柵圖像,其中每一行是代表調用圖的深度的條。第二個維度可以用顏色表示,比方說顯示動態內存使用。但只有你知道你對什麼感興趣!在您優化可視化時,您需要重新處理舊日誌以生成新的輸出。當它被寫入時發佈一個鏈接到您的論文:-) – andy256

回答

0

不管你沒有提到的應用語言,我想提出的Apache Log4XXX家庭:http://logging.apache.org/

,提供定製的細節水平以及標籤驅動記錄儀。圖形用戶界面工具(鏈鋸)可以與「古老的」GREP方法結合使用(因此您只能看到目前您感興趣的內容)。

0

Chainsaw的最新開發人員快照中提供了使用表達式語法的着色,搜索和過濾。表達式語法還支持正則表達式(使用'like'關鍵字)。

電鋸可以解析任何常規文本日誌文件,而不僅僅是由log4j生成的日誌文件。

電鋸的最新開發快照可以在這裏找到: http://people.apache.org/~sdeboy

文件,負載電鋸配置菜單項是你定義的「格式」,並要處理的日誌文件的位置,並表達語法可以在教程中找到,可以從幫助菜單中找到。

如果您還有其他問題,請隨時通過電子郵件發送給log4j用戶列表。

+0

任何機會,你可以寫一個博客或要點/示例如何使用chaing鋸從日誌文件以編程方式獲取日誌事件(不需要任何GUI)只是日誌字段一個哈希映射或Pojo?謝謝 – tgkprog