[英]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.