【发布时间】:2015-04-02 06:37:53
【问题描述】:
我正在使用 Serilog 进行日志记录,但无法弄清楚如何将日志事件分隔到不同的文件中。例如,我想将错误记录到 error_log-ddmmyyyy.txt 并将警告记录到 warn_log-ddmmyyyy.txt。
这是我的记录器配置:
Log.Logger = new LoggerConfiguration()
.WriteTo.Logger(lc =>
lc.Filter.ByIncludingOnly(Matching.WithProperty("Level", "Warning"))
.WriteTo.RollingFile(
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Logs\warn_log-{Date}.txt"),
outputTemplate: OutputTemplate))
.WriteTo.Logger(lc =>
lc.Filter.ByIncludingOnly(Matching.WithProperty("Level", "Error"))
.WriteTo.RollingFile(
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Logs\error_log-{Date}.txt"),
outputTemplate: OutputTemplate))
.CreateLogger();
仅当我在日志消息中明确指定 {Level} 属性时才有效。
我正在尝试使用:
Matching.WithProperty<LogEventLevel>("Level", l => l == LogEventLevel.Warning)
但它也没有用。
【问题讨论】:
-
@Kiquenet,它是 WCF 应用程序。
-
如何使用 Serilog 在代码中记录错误和警告?
-
@Kiquenet,示例如下:带有异常详细信息的错误消息:
Log.Logger.Error(ex, "Here goes error message with {Data}", someData)警告消息:Log.Logger.Warning("Here goes warning message with {Data}", someData)