Serilog仅记录调试,错误和警告日志,而不是信息



i具有配置用于记录的Serilog的应用程序。我的应用程序中有一个复选框,仅在单击该复选框按钮时,它才能记录所有信息日志否则只有错误,并且应记录警告日志。

在调试模式下如何仅记录调试,错误和警告日志,当按钮未选中时。自两天以来,我就一直在尝试这样做。我尝试使用.MinimumLevel.Debug()/restrictedToMinimumLevel: LogEventLevel.Debug在Google/Stackoverflow中建议的所有方法对我不起作用。它也记录了信息日志。

请帮助我。仅记录调试,错误和警告日志。

val是正确的,当启用复选框时:

if (val == "true")
{
    _logger = new LoggerConfiguration()
                    .MinimumLevel.Debug()
                    .WriteTo.File(_filepath, restrictedToMinimumLevel: LogEventLevel.Information)
                    .CreateLogger();
}
else if (val == "false")
{
    _logger = new LoggerConfiguration()
                    .MinimumLevel.Debug()
                    .WriteTo.File(_filepath, restrictedToMinimumLevel: LogEventLevel.Debug)
                    .CreateLogger();
}

val为false时,e。

您无法使用 MinimumLevel作为@barbsan注释来实现它。

但是您可以在情况下使用过滤。

过滤器仅偏向于LogEvent

_logger  = new LoggerConfiguration()
    .MinimumLevel.Debug()
    .WriteTo.File(_filepath)
    .Filter.ByIncludingOnly(isNotInfoLevel)
    .CreateLogger();

和以下功能,您可以在需要时添加更多条件

private static bool isNotInfoLevel(LogEvent le)
{
    return le.Level != LogEventLevel.Information;
}

通过使用ByExcluding排除信息级别

的花药方式
.Filter.ByExcluding((le) => le.Level == LogEventLevel.Information)

最新更新