Dot-Net

是否可以更改serilog中的顏色?

  • January 7, 2021

我剛剛在我的 dot net core 項目中集成了 Serilog。它工作得非常好,但我使用了一個黑暗的主題,有些日誌真的很難閱讀。舉個例子:

在此處輸入圖像描述

這就是我初始化 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,使用System.Console所有 Windows/.NET 目標支持的著色模式;這是未指定主題時的預設設置
  • SystemConsoleTheme.Grayscale- 僅使用灰色、白色和黑色陰影的主題
  • AnsiConsoleTheme.Literate- “literate”主題的 ANSI 16 色版本;我們希望在未來更新它以使用 256 色以獲得更精緻的外觀
  • AnsiConsoleTheme.Grayscale- “灰度”主題的 ANSI 256 色版本
  • AnsiConsoleTheme.Code- ANSI 256 色 Visual Studio Code 啟發主題

添加新主題很簡單;範例可以在SystemConsoleThemesAnsiConsoleThemes類中找到。

引用自:https://stackoverflow.com/questions/62953942