2012-01-30 16 views
6

我需要SLF4J日誌方面的一些建議。SLF4J記錄到文件與數據庫對比Solr

當前,我們正在使用SLF4J日誌記錄(log4j綁定)來執行我們的Java Web應用程序,該應用程序使用簡單的ConsoleAppender。我們的下一步是研究可以保存日誌的地方。

我們的應用程序每天處理大約100,000條消息。每條消息都會生成約60-100行日誌。我們的目標是能夠快速搜索和查找失敗的消息(使用messageId)並找出失敗的原因。

我的問題是:下列哪些是存儲我們的日誌的好去處:

  • 文件(S)
  • DB
  • Solr的

感謝。

回答

11

考慮從log4j切換並使用slf4j API的logback實現Logback有大量可用的appenders列表。

我想也許你的問題更關心讓你的日誌搜索。答案取決於你要搜索的內容。

  • 對於簡單的應用我只是用一個滾動文件附加目的地和grep這對我感興趣的消息。
  • 更復雜的應用程序將額外消息記錄到數據庫中。
  • 目前沒有可用於log4j和logback的Solr appender。然而,使用solrj API solrj應該很容易使用API​​
  • 爲了監視日誌消息,有一個lilith這是一個用於日誌消息的遠程GUI。 不知道它的尺度如何,但對於演示和簡單的監控確實很有趣。

更新

至於建議由塞巴斯蒂安也有對的logback一個Graylog2 appender。現在,在Maven的中央

<dependency> 
    <groupId>me.moocar</groupId> 
    <artifactId>logback-gelf</artifactId> 
    <version>0.9.6p2</version> 
</dependency> 

可用當然這將取決於其安裝graylog2服務器。

+1

還有Graylog,但我不認爲它的規模很好。 – 2012-01-31 00:38:43

+0

我們的搜索將很簡單:messageId +「某個搜索詞」。我將研究logback + DB選項。 – scabbage 2012-01-31 01:17:35

0

servlet規範中沒有爲您提供用於放置日誌的文件系統位置的功能。

因此,最健壯的長期解決方案是簡單地使用java.util.logging(與slf4j綁定)並讓web容器處理生成的日誌。

您每天有大約一千萬條日誌條目。這意味着您需要小心資源使用情況。數據庫通信比文件訪問要昂貴得多。我建議你介紹一下這些方法,看看你是否能夠獲得你需要考慮的其他性能,而不是每晚備份的平面文件。

相關問題