2010-07-01 38 views
1

我需要爲我的java Web應用程序建立一個日誌記錄系統,它不僅記錄常見的東西(錯誤消息,錯誤級別等),還可以將其他信息記錄爲以及會話ID等。當然,我想我可以把會話ID放在錯誤信息中,但問題是我最終會爲很多不同的用戶記錄大量和大量的數據,並且我最終需要一個可以查看日誌的系統並根據會話ID對日誌進行排序。在Java中記錄和輕鬆查看大量會話數據

我一直在看log4j加上電鋸,我想我可以extend log4j to add additional attributes這是偉大的,但那麼我怎麼看鏈鋸中的這些自定義屬性?

當然,我不是第一個有這個問題,除了log4j加上鍊鋸之外,還有什麼我可以使用的嗎?

回答

2

我不知道電鋸,但通過nested diagnostic context通常可以完成記錄其他交叉信息,例如會話ID,用戶名,請求IP等。

+0

好了,我該如何創建或得到一個NDC?我假設我應該使用LoggingEvent.getNDC(),但是如何獲取日誌記錄事件?我擁有的只是一個記錄器,一個appender和一個佈局對象。 – Ring 2010-07-01 22:22:56

+0

閱讀我鏈接的javadoc。請注意,操作NDC的操作是靜態的,您無需獲得NDC類的實例即可使用NDC。另請注意,PatternLayout可以配置爲打印NDC的當前內容。 – meriton 2010-07-01 22:36:23

+0

啊哈哈。謝謝你,愚蠢的我,出於某種原因,我的思想被封鎖,不斷思考這些是實例方法。 – Ring 2010-07-01 22:39:45

0

您是伐木審覈您的用戶?

審計涉及審查用戶操作作爲正常操作的一部分並且屬於數據庫。

伐木是更多的休息/修復。

0

最好的辦法是將數據插入到數據庫中。這樣,您可以在會話ID上使用索引,並使用直接SQL快速檢索和排序所有信息,或者根據給定會話ID或其他搜索條件創建輕量級Web應用程序來查看數據庫中的數據。

如果你想快速的解決方案,你可以養活現有的日誌文件到 - 嘗試splunk

HTH

1

免責聲明:我電鋸的提交者之一......

電鋸將顯示NDC值在其自己的列中,並且也將任何MDC條目顯示爲其自己的列。

很多在即將發佈(即將)即將到來的新功能,它可以很容易地過濾,着色,搜索和sort..or,拉電鋸+ log4j的同伴下來通過svn與Maven構建...

一個非常方便的功能:可以爲單個事件添加評論,保存電鋸內部的事件並將結果文件發送給其他人,他們可以在表格中查看您的評論。

這裏有一個屏幕視頻:http://people.apache.org/~sdeboy/chainsawdemo.avi