我可以使用一些查看器来查看和搜索 serilog 日志文件吗?

Nic*_*ico 9 .net logging

我知道一些结构化日志的免费/商业可视化工具,例如 seq、回溯。问题是我不想直接添加为接收器,因为我不希望每个日志记录操作都涉及向日志服务器发送 Http 请求。相反,我想尽快登录到本地文件,同时仍然能够以结构化的方式查看和搜索记录的文件内容。

那么有没有实用的解决方案呢?谢谢。

小智 8

我尝试了很多应用程序,但 TailBlazer 似乎最适合我,它是免费的,而且非常易于使用。 这里

  • 看起来是 ie 生成的日志的一个很好的选择。Log4Net,但不适用于结构化日志记录,因为我希望该工具能够更好地可视化结构化数据。 (2认同)

Nic*_*rdt 6

一种选择是使用文件接收器和Serilog.Formatting.Compact写入文件:

.WriteTo.File(new CompactJsonFormatter(), "log.clef")
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用类似jq或 的方法clef-tool来读取/查询日志,包括结构化数据:

clef -i log.clef --filter="SomeProp > 100"
Run Code Online (Sandbox Code Playgroud)

其中SomeProp > 100Serilog 过滤器表达式


Tor*_*tad 5

Compact Log Viewer 可在 Windows 应用商店免费下载。还可以从此处的 GitHub Repo 下载版本:

https://github.com/warrenbuckley/Compact-Log-Format-Viewer/releases

确保在 Nuget 包中添加 Serilog.Formatting.Compact。

在 Program.cs 内部,如果您有 .net6 + 应用程序(例如 Blazor 服务器端应用程序),您可以添加以下内容来设置 SeriLog :

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Debug()
    .MinimumLevel.Override("Microsoft", Serilog.Events.LogEventLevel.Information)
    .Enrich.FromLogContext()
    .WriteTo.File(new CompactJsonFormatter(), "Logs/log_sweets.json", rollingInterval: RollingInterval.Day)
    .CreateLogger();

builder.Logging.ClearProviders();
builder.Logging.AddSerilog();
Run Code Online (Sandbox Code Playgroud)

当我在这里测试时,紧凑日志查看器仅适用于 .json 文件,因此这就是我使用上面的 CompactLogJsonFormatter 的原因

SeriLog - 紧凑型日志查看器