2014-05-08 25 views
2

目前,在我的網絡應用程序日誌中,我有大量的文本文件充滿了消息。它們很難用於調試和分析。我正在想象下面,我想知道,它已經存在,還是我需要建立它?如何在Java Web應用程序中記錄消息並通過會話,請求在樹中查看日誌?

我想擁有與當前請求和會話關聯的日誌消息,以便我可以在UI中將日誌視爲可摺疊的樹。在摘要級別,我可能會按用戶/會話查看並在請求中查看請求的總時間。從那裏我可以深入查看請求,並在更深層次上查看日誌消息。包含警告或錯誤的請求將通過過濾器突出顯示或選擇。

我也希望系統是可擴展的,而不是黑盒子。我想將異步任務連接到會話/請求,即使這些事情發生在其他線程中。我想將這與客戶端Javascript錯誤集成在一起。這是另一個問題,但關鍵是我需要一些可擴展的東西。

回答

4

我使用以下模式:

  • 使用我的Log4j圖案MDC - %d {ISO8601}%P [%X {REQUEST_ID}] [%X {SESSION_ID}] [%X {USER }]%類%米%正
  • 在申請我使用MDC.put()方法來設置REQUEST_ID,SESSION_ID每個請求,USER

    MDC.put("SESSIONION_ID", sessionId); 
    MDC.put("REQUEST_ID", requestId); 
    MDC.put("USER", user); 
    
  • 我在OtrosLogViewer定義該日誌圖案。您的登錄模式的定義應該是這樣的:

    type=log4j 
    pattern=TIMESTAMP LEVEL [PROP(REQUEST_ID)][PROP(SESSION_ID)][PROP(USER)] CLASS MESSAGE 
    dateFormat=yyyy-MM-dd HH:mm:ss,SSS 
    name="MyAppLog" 
    charset=UTF-8 
    
  • 我打開與OtrosLogViewer日誌,讓我很容易過濾器由物業REQUEST_ID,SESSIONS_ID或USER_ID。它還可以按類別,日期,線程等過濾日誌。日誌可以從remote servers using SFTP, FTP, SMB

  • 此外,您可以集成OtrosLogViewer with your Intellij。 YouTube上看到的例子:https://www.youtube.com/watch?v=SbOFF56_7-A?hd=1

免責聲明:我的OtrosLogViewer

作者
相關問題