Serilog 的显式日志级别而不是最小级别

cno*_*nom 2 c# serilog

有什么方法可以在 serilog 中为每个文件配置一个日志级别吗?

我知道我可以为每个“MinimumLevel”配置一个文件,但这不是我需要的。

小智 5

我有类似的要求。经过一番研究,我在 .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();
Run Code Online (Sandbox Code Playgroud)

如果您正在从 appsettings.json 文件读取设置并且想要使用上述内容,则应该从该文件传输您的逻辑。

我的回答很大程度上受到以下帖子的启发: 限制到级别