我刚刚将 Serilog 集成到我的 dot net core 项目中。它工作得非常好,但我使用深色主题,并且一些日志确实很难阅读。举个例子:
这就是我初始化 Serilog 的方式:
string environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
LoggerConfiguration loggerConfig = new LoggerConfiguration();
if (environment == "Production")
loggerConfig.MinimumLevel.Information();
loggerConfig.MinimumLevel.Override("Microsoft.AspNetCore",
LogEventLevel.Warning)
.Enrich.FromLogContext()
.WriteTo.Console()
.WriteTo.File("Logs/app.log");
有什么方法可以改变颜色,使黑色原木变成白色吗?
是的,使用控制台接收器时更改颜色的方法是通过主题。您可以尝试其中一个内置的,或者创建您自己的。
控制台接收器默认会对输出进行着色:
配置接收器时可以指定主题:
.WriteTo.Console(theme: AnsiConsoleTheme.Code)
截至撰写本文时,以下内置主题可用:
ConsoleTheme.None
- 没有样式SystemConsoleTheme.Literate
- 样式复制 Serilog.Sinks.Literate,使用所有 Windows/.NET 目标支持的 System.Console
着色模式; 未指定主题时这是默认值SystemConsoleTheme.Grayscale
- 仅使用灰色、白色和黑色色调的主题AnsiConsoleTheme.Literate
- “literate”主题的 ANSI 16 色版本;我们希望将来更新为使用 256 色以获得更精致的外观AnsiConsoleTheme.Grayscale
- “灰度”主题的 ANSI 256 色版本AnsiConsoleTheme.Code
- 受 Visual Studio Code 启发的 ANSI 256 色主题SystemConsoleThemes
和 AnsiConsoleThemes
类中找到。
有点类似的问题,但我试图根据日志级别为整行着色;
我知道怎么做了。如果您有兴趣,可以在这里找到我是如何完成的: https://github.com/serilog/serilog-sinks-console/issues/35#issuecomment-2577943657