繁体   English   中英

从控制台应用程序实现控制台、文件和内存日志记录

[英]Implement console, file and memory logging from console application

我想在控制台应用程序中实现日志记录。 由于我使用的是需要ILogger库,因此我需要提供一个。

由于我不太完全理解的原因,每篇文章似乎都建议我使用SeriLog而不是编写自己的记录器。 但没有人提供令人信服的理由。

无论哪种情况,我都需要以下内容:

  • 记录的信息应该转到控制台。
  • 记录的信息应该进入日志文件。
  • 在我的应用程序运行后,我想将所有登录的信息放入电子邮件中。

谁能告诉我如何完成这三个任务,以及我是否真的需要像SeriLog这样的东西来做到这一点?

注意:我认为从日志文件中读取并将其用于通过电子邮件发送日志是没有意义的。 日志文件可能包含许多会话的日志记录,我只想通过电子邮件发送最近会话的数据。

根据您列出的要求,Serilog 似乎非常适合您,因为您可以利用现有接收器的组合,例如ConsoleFile和可能的Memory - 尽管您不需要最后一个......您可以轻松地为每个会话创建一个唯一的日志文件,阅读该文件并通过电子邮件发送,如果这是您想要实现的...

如果您真的对最后一部分很在意,您可以编写自己的 Serilog 接收器,以您想要的方式缓冲日志事件,然后在最后通过电子邮件发送。

也就是说,如今人们已经不再通过电子邮件向自己发送日志了……您可以使用更好的接收器将日志直接发送到可以自动连续摄取日志并提供出色 UI 和 API 的商店/服务查询您的日志...您可能想看看SeqSentryDataDog和其他...


Serilog 是一个设计精良的库,使用非常广泛,经过全面测试,截至撰写本文时,已有近 27,000 个开源项目和数百名贡献者

如果您认为您可以对日志记录的完成方式进行创新并将其提升到一个新的水平,那么这将是推出您自己的库的一个很好的理由,否则似乎是在浪费时间重新发明轮子。

创新实际上是 Serilog 的产生方式......其他广泛使用的日志库,如Log4NetNLog之前已经存在,但 Serilog 使语义日志记录成为 .NET 空间的主流,并结合精心设计的创建扩展(接收器、丰富器、解构器、 ……)。 剩下的就是历史了...... NLog 紧跟 Serilog 的脚步之后不久,随着时间的推移,Log4Net 变得过时并且在这一点上是遗留的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM