5

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

4

3 回答 3

2

在 log4Net 你应该配置 appender,这里官方文档见 RemotingAppender

对于监听 TCP,您应该使用 TcpListener,就像在这个资源中一样,存在一些 log4net 客户端,像这样

于 2012-11-16T07:41:54.143 回答
1

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

在 log4Net 中,您可能会考虑AdoNetAppender。配置示例在这里

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

于 2012-11-16T16:40:04.310 回答
0

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

最好的建筑

MS Application Insights——用于检测日志

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

logstash——一个过滤器,你可以用它过滤日志

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

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

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

于 2017-08-30T19:41:54.023 回答