簡體   English   中英

顯式日志級別,而不是Serilog的最小級別

[英]Explicit Log Level instead of MinimumLevel for Serilog

有什么方法可以為serilog中的每個文件配置一個日志級別?

我知道我可以為每個“ MinimumLevel”配置一個文件,但這不是我所需要的。

Serilog.Sinks.Map可以用於此目的,而無需引入太多重復:

Log.Logger = new LoggerConfiguration()
    .WriteTo.Map(le => le.Level, (level, wt) => wt.File($"C:\\Temp\\{level}-logs.txt"));

我有類似的要求。 經過研究,我在.net core 2.2 Web api的Startup類中添加了以下內容:

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Override("Microsoft", LogEventLevel.Error)
    .WriteTo.Logger(lc => lc
        .Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Error)
        .WriteTo.RollingFile("C:\\Temp\\erros-logs.txt"))
    .WriteTo.Logger(lc => lc
        .Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Information)
        .WriteTo.RollingFile("C:\\Temp\\info-logs.txt"))
    .CreateLogger();

如果您正在從appsettings.json文件中讀取設置,並且想要使用以上內容,則應該從文件中轉移邏輯。

我的答案受到以下帖子的啟發: 限制級別

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM