从.Net应用程序登录到Logstash的最佳实践是什么?

时间:2018-10-07 08:20:26

标签: .net performance logging logstash elastic-stack

我做了很多研究,但无法得到绝对的答案。

我有一个ELK堆栈,以及三个单独的应用程序(2个Asp.Net WebForms应用程序和一个用C#和C ++编写的Windows服务应用程序)。它们都使用统一的“ Infrastructures” .Net程序集,其中包含静态“ Trace”类。 Trace类包含不同的编写器(HttpLogWriter,FileLogWriter,WindowsEventLogWriter ...)。它还具有名为“信息”,“调试”,“错误”等的方法,并且这些方法都称为在每个编写器中实现的“日志”方法。

我们写了很多日志,但我不确定使用HttpLogWriter编写日志的最佳方法是什么。

当前,HttpLogWriter使用“ HttpClient”类将日志发送到Logstash。

当我在较弱的机器上安装Logstash时(在AWS上),我遇到了一些性能问题。如果我将更强大的机器用于Logstash,也许它将得到解决,但是我不希望我的代码依赖它。

最好的方法是什么?

我的想法:

  • 为Trace类使用1个线程(如何?)。
  • 使用BlockingQueue类。
  • 使用“发射后忘了”模式(如何?)。

谢谢。

0 个答案:

没有答案