如何组织集中式日志记录?

5

情况是:我们有许多使用C#开发的应用程序实例。我们想要它们记录到一个地方(可以是一个文件)。据我所知,log4net和NLog可以通过TCP发送日志。问题在于-如何监听这些日志并存储它?是否有可以收集这些日志的可行解决方案?

3个回答

2

1
在NLog中,您可能考虑使用数据库目标。NLog还有其他一些目标可供选择,包括LogReceiverService,它将日志消息发送到WCF服务或Web服务,从而可以将它们记录到任何NLog目标,包括文件中。
在log4Net中,您可能考虑使用AdoNetAppender。配置示例在此处
我要注意的是,在过去,我实现了基于WCF的LoggingService(与NLog的LogReceiverService最终类似),这对我很有效。

0

最好使用MS提供的Application Insights功能。它可以用于任何语言,而不仅仅是Microsoft语言。Application Insights分为两部分。SDK用于仪器化遥测(日志数据)并在Azure仪表板中可视化这些日志。SDK是开源的,您需要支付Azure可视化工具的费用。如果您不想支付,则可以在代码中使用Application Insights,并将这些日志发送到开源的Elastic Stack。

最佳架构

MS Application Insights--用于仪器化日志

Apache Kafka--作为管道和临时存储,将日志发送到Kafka

Logstash--一个过滤器,您可以使用它来过滤日志

Elasticsearch--一个NoSQL数据库,用于存储过滤后的数据

Kibana--从Elastic拉取数据并提供可视化的仪表板。

此外,您还可以将Spark链接到Kafka输出以触发电子邮件、短信等形式的警报。


如何将通过 MS App Insight 收集的日志发送到 Kafka? - indusBull

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接