Идея такова:
- всего их 3 будут настроены приемники... Файл, События и БД
- по умолчанию все журналы с минимальным уровнем информации должны поступать в БД и средство просмотра событий.
< li>Подробный журнал будет сохранен в файле. - Ниже представлена добавленная мною конфигурация.
- Эта конфигурация записывает журналы во все три приемника и не фильтрует подробные журналы для файлового приемника.
/> - Файл журнала содержит все журналы, такие же, как база данных и средство просмотра событий.
- Условие фильтра работает нормально, если оно добавлено из кода... а не из конфигурации JSON.
{
"Serilog": {
"Using": [ "Serilog.Sinks.File", "Serilog.Sinks.MSSqlServer", "Serilog.Settings.Configuration", "Serilog.Sinks.EventLog", "Serilog.Expressions" ],
"MinimumLevel": {
"Default": "Verbose", // Default logging level
"Override": {
"Microsoft": "Warning", // Override for specific namespaces
"System": "Warning"
}
},
"WriteTo": [
{
"Name": "MSSqlServer",
"Args": {
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}",
"restrictedToMinimumLevel": "Information",
"connectionString": "",
"tableName": "SystemLogEvents",
"autoCreateSqlTable": true
}
},
{
"Name": "File",
"Args": {
"path": "Logs/filtered_logs.log", // Specify the file path
"rollingInterval": "Day", // Log rotation interval
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}"
},
"Filter": [
{
"Name": "ByIncludingOnly",
"Args": {
"expression": "@l = 'Verbose'" // Filter criteria
}
}
]
},
{
"Name": "EventLog",
"Args": {
"restrictedToMinimumLevel": "Information",
"source": "MyApp",
"manageEventSource": true,
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}"
}
}
]
}
}
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration) // Use the configuration object
//.Filter.ByIncludingOnly(x=>x.Level == LogEventLevel.Verbose)
.CreateLogger();
Подробнее здесь: https://stackoverflow.com/questions/793 ... expression
Мобильная версия