[英]How to organize centralized logging?
情況是:我們有很多在C#
上開發的工作應用程序實例。 我們希望他們登錄一個地方(可能是一個文件)。 據我所知, log4net
和NLog
可以通過TCP發送日志。 問題是 - 如何監聽這些日志並存儲它? 是否有任何可行的解決方案來收集這些日志?
在NLog中,您可能會考慮數據庫目標。 NLog還有一些您可能會考慮的目標,包括LogReceiverService ,它將日志消息發送到WCF服務或Web服務,在那里它們可以記錄到任何NLog目標,包括文件。
在log4Net中,您可能會考慮使用AdoNetAppender 。 這里的配置示例。
我會注意到,在過去,我實現了一個基於WCF的LoggingService(最終類似於NLog的LogReceiverService),這對我很有用。
最好使用MS提供的應用程序洞察功能。 它可以使用任何語言,而不僅僅是Microsoft語言。 應用見解分為兩部分。 SDk用於儀表遙測(記錄數據)並在天藍色儀表板中顯示這些日志。 SDK是開源的,您需要為azure可視化工具付費。 如果您不想付費,請在代碼中使用Application insgists並將這些日志發送到開源的彈性堆棧
最好的建築
MS Application Insights - 用於檢測日志
Apache Kafka - 充當管道和臨時stoarge,將您的日志發送到kafka
logstash--用於過濾日志的過濾器
elasticsearch - 一個沒有sql db到存儲過濾數據的地方
kibana - 儀表板,從彈性中提取數據並提供視覺效果。
你也可以將spark鏈接到kafka輸出,以電子郵件,短信的形式觸發警報。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.