Serilog, как разделить логи?
Использую у Serilog логирование в консоль и Seq, как можно сделать ограничение через json файл настроек Serilog, чтобы логи в Seq попадали только с уровня Warning (да, в самом Seq есть настройки минимального уровня, но хотелось бы решение через конфиг) и выше? При этом оставить, чтобы вообще все логи попадали в консоль (Information +)?
Ответы (2 шт):
Автор решения: Jack Owest
→ Ссылка
В конфиге можно использовать "Filter": "Level >= Warning" для Seq и Level >= Information для консоли, примерно так:
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.Seq" ],
"MinimumLevel": "Verbose",
"WriteTo": [
{
"Name": "Console",
"Args": {
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}"
},
"Filter": "Level >= Information"
},
{
"Name": "Seq",
"Args": {
"serverUrl": "http://localhost:5341/",
"apiKey": "YourApiKey"
},
"Filter": "Level >= Warning"
}
]
}
Автор решения: OwDafuq
→ Ссылка
В итоге решение получилось таким:
"WriteTo": [
{
"Name": "Console"
},
{
"Name": "Seq",
"Args": {
"serverUrl": "http://localhost:5341/",
"apiKey": "key",
"restrictedToMinimumLevel": "Warning"
}
}
]
Оказалось, что Serilog.Sinks.Seq уже имеет встроенный фильтр, который устанавливается через restrictedToMinimumLevel.