Фильтровать журналы Serilog на разные приемники в зависимости от источника контекста?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Фильтровать журналы Serilog на разные приемники в зависимости от источника контекста?

Сообщение Anonymous »

У меня есть приложение .NET Core 2.0, в котором я успешно использую Serilog для ведения журналов. Теперь я хотел бы записать некоторую статистику производительности базы данных в отдельный приемник (они не предназначены для отладки, что, по сути, является целью всех остальных журналов в приложении, поэтому я хотел бы хранить их отдельно) и решил, что это можно сделать. создав регистратор статистики БД с помощью Log.ForContext().

Я не знаю, как мне настроить Serilog с помощью мой appsettings.json для записи моих «журналов отладки» в один приемник, а журнала статистики БД в другой? Я надеюсь, что можно сделать что-то вроде:

"Serilog": {
"WriteTo": [
{
"Name": "RollingFile",
"pathFormat": "logs/Log-{Date}.log",
"Filter": {
"ByExcluding": "FromSource(MyClass)"
}
},
{
"Name": "RollingFile",
"pathFormat": "logs/DBStat-{Date}.log",
"Filter": {
"ByIncludingOnly": "FromSource(MyClass)"
}
}
]
}


Части конфигурации «Фильтр» — это чистая догадка с моей стороны. Возможно ли это с помощью моего файла конфигурации или мне нужно сделать это в коде моего файла Startup.cs?

EDIT: у меня это работает, используя API C#, но все же хотелось бы разобраться в этом с помощью конфигурации JSON:

Log.Logger = new LoggerConfiguration()
.WriteTo.Logger(lc => lc
.Filter.ByExcluding(Matching.FromSource())
.WriteTo.LiterateConsole())
.WriteTo.Logger(lc => lc
.Filter.ByExcluding(Matching.FromSource())
.WriteTo.RollingFile("logs/DebugLog-{Date}.log"))
.WriteTo.Logger(lc => lc
.Filter.ByIncludingOnly(Matching.FromSource())
.WriteTo.RollingFile("logs/DBStats-{Date}.log", outputTemplate: "{Message}{NewLine}"))
.CreateLogger();


Подробнее здесь: https://stackoverflow.com/questions/465 ... ext-source
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»