[英]Centralized Logging for many Java Apps: Syslog vs JMS vs Http vs Local file
我希望我的所有應用程序日志都集中在一起(理想情況下是近乎實時的)。 我們將使用Log4 Appender。 我應該使用哪一個:
你在用哪一個?
取決於您的要求。 記錄到隊列(如在JMS中)為您提供了最靈活的選項,因為日志消息一旦寫入隊列就可以返回日志操作。 然后,您可以自由地讓另一個進程將這些日志消息從隊列中刪除,並將它們寫入首選的日志存儲(數據庫,文件系統,...)。
(輕微)缺點是您的日志消息將略微落后於正在記錄的系統,但即使使用基於文件的日志記錄,也幾乎總是如此。
這可能有點矯枉過正,但你看過Splunk了嗎? 對於Java應用程序,我使用Log4J或SLF4J來記錄文件,然后Splunk可以聚合日志並使它們可搜索。
我不熟悉Log4(Log4j?),但它有數據庫追加器嗎? 這將提供您所需的集中化,並且無需復制日志。
它實際上在很大程度上取決於你想要的東西。我不認為syslog不是應用程序日志記錄的好選擇,它更適合基礎設施日志。 在不了解太多細節的情況下,您列出的所有4個選項都可以。 我們用這個 。
順便說一下 ,log4j確實有AsyncAppender ,它使用隊列和專用的消費者線程來記錄它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.