我使用SEQ,file和JSON作为Serilog接收器
Log.Logger = new LoggerConfiguration()
.Enrich.With(new ThreadIdEnricher())
//.Enrich.FromLogContext()
.WriteTo.RollingFile(@"C:\QRT\Logs\QRT-LOG.txt", LogEventLevel.Information)
.WriteTo.Seq("http://localhost:5341")
.WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Information)
.WriteTo.File(new CompactJsonFormatter(), "C:/QRT/Logs/log.clef")
.CreateLogger();
SEQ对我来说是因为看起来它真的很有用。 JSON我可能会废除......我试图编写一个可以导入Access的文件。关键是我需要我的非开发人员朋友能够看到日志和Access是一个工具我相信他可以用来轻松过滤客户ID等项目。我无法找到关于Serilog不是他们的名字。有人可以建议一种机制,以沉入可以导入到Access或另一个用户友好的工具可以准备好的接收器的东西?
我目前正在使用NLog和GamutLogViewer这很棒,因为它可以根据正则表达式为条目着色!
任何建议都是最受欢迎的。这个想法是我的朋友不看日志调试。他将查看日志中包含的“信息”。
这是在Windows中的控制台应用程序上使用C#。谢谢-Ed
Serilog有一个名为Serilog.Sinks.NLog
的接收器,它使Serilog能够通过现有的NLog基础设施编写事件,这意味着您可以在整个应用程序中有效地使用Serilog,但输出NLog格式的日志文件,GamutLogViewer可以读取(或者YALV!作为替代)。
我能想到的另一种方法是使用接收器Serilog.Sinks.MSSqlServer
将日志写入SQL Server表(如果您不希望/拥有共享的SQL Server,甚至可以是用户计算机上的SQL Server Express实例)和然后使用Microsoft Access通过Access中的linked tables查询这些日志。
最终,您可以开发自己的接收器,直接写入.csv
文件,甚至直接写入Access .accdb
文件。为Serilog开发Sinks非常简单,你可以使用tons of examples作为定制水槽的基础。