Я использую 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)
но это тоже не сработало.
Log.Logger.Error(ex, "Here goes error message with {Data}", someData)
Предупреждающее сообщение:Log.Logger.Warning("Here goes warning message with {Data}", someData)
- person Anton Kiprianov   schedule 19.02.2015