是否可以在serilog中更改颜色?

问题描述 投票:0回答:2

我刚刚将 Serilog 集成到我的 dot net core 项目中。它工作得非常好,但我使用深色主题,并且一些日志确实很难阅读。举个例子:

enter image description here

这就是我初始化 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");

有什么方法可以改变颜色,使黑色原木变成白色吗?

.net logging .net-core themes serilog
2个回答
29
投票

是的,使用控制台接收器时更改颜色的方法是通过主题。您可以尝试其中一个内置的,或者创建您自己的。

控制台接收器默认会对输出进行着色:

Colorized Console

配置接收器时可以指定主题:

    .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
类中找到。


0
投票

有点类似的问题,但我试图根据日志级别为整行着色; image

我知道怎么做了。如果您有兴趣,可以在这里找到我是如何完成的: https://github.com/serilog/serilog-sinks-console/issues/35#issuecomment-2577943657

© www.soinside.com 2019 - 2024. All rights reserved.