serilog 仅记录调试、错误和警告日志,但不记录信息
serilog to log only debug, error and warning logs but not information
我有一个配置了用于日志记录的 serilog 的应用程序。我的应用程序中有一个复选框,只有单击该复选框按钮时,它才会记录所有信息日志,否则只应记录错误和警告日志。
在调试模式下如何在未选中按钮时仅记录调试、错误和警告日志。自 2 天以来,我一直在尝试这样做。我已经使用 .MinimumLevel.Debug()
/restrictedToMinimumLevel: LogEventLevel.Debug
尝试了 google/Whosebug 中建议的所有方法,但它对我不起作用。它还记录信息日志。
请帮我解决这个问题。只记录调试、错误和警告日志。
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时,it.e。当复选框未启用时,它应该只记录调试、错误和警告日志。
您无法使用 MinimumLevel
as @barbsan 评论来实现它。
但您可以使用 filtering 来处理您的情况。
Filters are just predicates over 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)
我有一个配置了用于日志记录的 serilog 的应用程序。我的应用程序中有一个复选框,只有单击该复选框按钮时,它才会记录所有信息日志,否则只应记录错误和警告日志。
在调试模式下如何在未选中按钮时仅记录调试、错误和警告日志。自 2 天以来,我一直在尝试这样做。我已经使用 .MinimumLevel.Debug()
/restrictedToMinimumLevel: LogEventLevel.Debug
尝试了 google/Whosebug 中建议的所有方法,但它对我不起作用。它还记录信息日志。
请帮我解决这个问题。只记录调试、错误和警告日志。
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时,it.e。当复选框未启用时,它应该只记录调试、错误和警告日志。
您无法使用 MinimumLevel
as @barbsan 评论来实现它。
但您可以使用 filtering 来处理您的情况。
Filters are just predicates over
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)