Вы должны настроить суб-логгеры, а не перекатывать файлы.У вас есть две записи в вашем массиве WriteTo
, но обе "Name": "RollingFile"
.Измените их на "Name": "Logger"
, а затем переместите конфиги фильтра в соответствующие разделы configureLogger
этих суб-регистраторов.Примерно так:
"WriteTo": [
{
"Name": "Logger",
"Args": {
"configureLogger": {
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "log-{Date}.log",
"retainedFileCountLimit": 5,
"fileSizeLimitBytes": 2147483648,
}
}
],
"Filter": [
{
"Name": "ByExcluding",
"Args": {
"expression": "StartsWith(SourceContext, 'Microsoft.EntityFrameworkCore.')"
}
}
]
}
}
},
{
"Name": "Logger",
"Args": {
"configureLogger": {
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "log-db-{Date}.log",
"retainedFileCountLimit": 5,
"fileSizeLimitBytes": 2147483648,
}
}
],
"Filter": [
{
"Name": "ByIncluding",
"Args": {
"expression": "StartsWith(SourceContext, 'Microsoft.EntityFrameworkCore.')"
}
}
]
}
}
}
],
В моих тестах все еще есть пространства имен Microsoft.AspNetCore
и Microsoft.Extensions
, проходящие через второй фильтр - поэтому не уверен, что ByIncluding
блокирует, как ByExcluding
.И я не уверен, какие другие типы фильтров доступны для этого.
Обновление
Просто видел в другом месте, что это похоже на другой тип фильтра, который вы можете попробовать:"Name": "ByIncludingOnly"
.