是否有一个Serilog接收器仅写入内存中的缓冲区?我正在考虑的是一个将存储X行的接收器,然后我可以访问这些X行并通过api控制器将其显示在网页上。这对于查看应用程序中最近发生的错误更有用。
我查看了GitHub接收器页面(https://github.com/serilog/serilog/wiki/Provided-Sinks),但没有看到一个页面,只是想知道我是否缺少某些内容。
答案 0 :(得分:2)
Serilog没有内置的可写入内存的接收器,但是您可以为此轻松地编写一个。例如,看看Serilog单元测试中使用的 DelegatingSink
,它是您所需的80%...您只需要存储事件在内存中的数据结构中。
另一种选择是使用 mssqlserver
接收器,将事件写到一个简单的表中,然后在您的Web应用程序中显示。
第三个选项(这是我的建议)是仅安装 Seq ,该版本对于开发和单用户部署是免费的,只需通过以下方式将日志写入Seq their sink。这样一来,您就不必再编写Web应用程序了,而且可以立即进行搜索和过滤。