簡體   English   中英

許多Java應用程序的集中日志記錄:Syslog vs JMS vs Http vs Local文件

[英]Centralized Logging for many Java Apps: Syslog vs JMS vs Http vs Local file

我希望我的所有應用程序日志都集中在一起(理想情況下是近乎實時的)。 我們將使用Log4 Appender。 我應該使用哪一個:

  1. 在JMS隊列中發送日志事件
  2. Syslog / syslog-ng
  3. 寫入本地文件並使用rsync(每3秒)復制日志
  4. 對集中式REST Http服務執行POST

你在用哪一個?

取決於您的要求。 記錄到隊列(如在JMS中)為您提供了最靈活的選項,因為日志消息一旦寫入隊列就可以返回日志操作。 然后,您可以自由地讓另一個進程將這些日志消息從隊列中刪除,並將它們寫入首選的日志存儲(數據庫,文件系統,...)。

(輕微)缺點是您的日志消息將略微落后於正在記錄的系統,但即使使用基於文件的日志記錄,也幾乎總是如此。

這可能有點矯枉過正,但你看過Splunk了嗎? 對於Java應用程序,我使用Log4J或SLF4J來記錄文件,然后Splunk可以聚合日志並使它們可搜索。

我不熟悉Log4(Log4j?),但它有數據庫追加器嗎? 這將提供您所需的集中化,並且無需復制日志。

它實際上在很大程度上取決於你想要的東西。我不認為syslog不是應用程序日志記錄的好選擇,它更適合基礎設施日志。 在不了解太多細節的情況下,您列出的所有4個選項都可以。 我們用這個

順便說一下 ,log4j確實有AsyncAppender ,它使用隊列和專用的消費者線程來記錄它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM