【问题标题】:How to organize centralized logging?如何组织集中日志记录?
【发布时间】:2012-11-04 21:55:48
【问题描述】:

情况是:我们有许多工作应用程序实例,在C# 上开发。我们希望他们登录一个地方(可能是一个文件)。据我所知log4netNLog 可以通过TCP 发送日志。问题是 - 如何收听这些日志并存储它? 是否有任何可行的解决方案来收集这些日志?

【问题讨论】:

    标签: c# logging log4net nlog


    【解决方案1】:

    在 log4Net 中你应该配置 appender,here official documentation 见 RemotingAppender

    对于侦听 TCP,您应该使用 TcpListener,如 this resource,存在一些用于 log4net 的客户端 like this

    【讨论】:

      【解决方案2】:

      在 NLog 中,您可能会考虑使用 Database 目标。 NLog 有一些您可能会考虑的其他目标,包括 LogReceiverService,它将日志消息发送到 WCF 服务或 Web 服务,在那里它们可以记录到任何 NLog 目标,包括文件。

      在 log4Net 中,您可能会考虑使用 AdoNetAppender。配置示例here

      我会注意到,在过去,我实现了一个基于 WCF 的 LoggingService(最终类似于 NLog 的 LogReceiverService),这对我来说效果很好。

      【讨论】:

        【解决方案3】:

        最好使用 MS 提供的应用洞察功能。它可以使用任何语言,而不仅仅是 Microsoft 语言。应用洞察分为两部分。用于检测遥测(记录数据)并在 azure 仪表板中可视化这些日志的 SDK。 SDK 是开源的,您需要为 azure 可视化工具付费。如果您不想付费,请在代码中使用 Application insgists 并将这些日志发送到开源的弹性堆栈

        最好的架构

        MS Application Insights -- 用于检测日志

        Apache Kafka -- 充当管道和临时存储,将您的日志发送到 kafka

        logstash-- 一个可以过滤日志的过滤器

        elasticsearch -- 一个没有存储过滤数据的 sql 数据库

        kibana -- 从弹性中提取数据并进行可视化的仪表板。

        您还可以将 spark 链接到 kafka 输出以触发电子邮件、短信形式的警报。

        【讨论】:

        • 如何将通过 MS App Insight 收集的日志发送到 Kafka?
        猜你喜欢
        • 2011-07-11
        • 2012-06-21
        • 2014-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多