В моем веб-API ASP.NET Core 2.1 я использую Serilog с MSSqlServerSink.Как я могу изменить структуру таблицы по умолчанию и добавить данные в эти столбцы, настроив ее с помощью настроек приложения?
Я пробовал настроить значения в соответствии с примерами документации, но ошибок нет.Это как если бы настройки игнорировались.Я знаю, что настройки читаются, потому что некоторые из них выбираются, например, имя таблицы.Я разместил вопросы на других форумах ASP.NET, и предложения не имеют никакого эффекта.Я разместил вопросы в ленте Serilog Gitter, но не получил ответа.Я опубликовал сообщение о проблемах github, и кто-то предложил обновить его с последней версии до версии dev, но это живая среда.Это раздел в файле appsettings.json, в котором настраивается serilog.
"Serilog": {
"Using": [ "Serilog.Sinks.MSSqlServer" ],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning"
}
},
"WriteTo": [
{
"Name": "MSSqlServer",
"Args": {
"connectionString": "Server=(local);Database=ACLWebAPILogs;trusted_connection=true",
"tableName": "ACLWebAPILog",
"restrictedToMinimumLevel": "Information",
"autoCreateSqlTable": true
"columnOptionsSection": {
"disableTriggers": true,
"removeStandardColumns": [ "MessageTemplate", "Properties" ],
"additionalColumns": [
{
"ColumnName": "ControllerName",
"DataType": "nvarchar",
"AllowNull": true,
"DataLength": 50
},
{
"ColumnName": "MessageType",
"DataType": "nvarchar",
"AllowNull": true,
"DataLength": 50
}
]
}
}
}
]
}
Код, который находится в конструкторе запуска в Startup.cs, имеет следующую строку для добавления системы ведения журнала:
// Init Serilog configuration
Log.Logger = new LoggerConfiguration()
.ReadFrom.ConfigurationSection(configuration.GetSection("Serilog"))
.CreateLogger();
В функции Configure у меня есть:
loggerFactory.AddSerilog();
Я бы ожидал, что это удалит столбцы MessageTemplate и Properties и добавит два элемента, на которые ссылаются ниже.Как будто все, что передано autoCreateSqlTable игнорируется.Я смотрел на Enrichers, и они не делают то, что я хочу.