Изменение стандартной таблицы MSSqlServerSink из настроек приложения - PullRequest
0 голосов
/ 02 мая 2019

В моем веб-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, и они не делают то, что я хочу.

1 Ответ

0 голосов
/ 01 июня 2019

Обновите Serilog.Sinks.MSSqlServer до предварительно выпущенной версии 5.1.3-dev-00232

Проверьте этот ответ для получения более подробной информации https://stackoverflow.com/a/55264488/3134112

...