Serilog.Sinks.MsSqlServer прекращает запись в базу данных - PullRequest
1 голос
/ 30 января 2020

Я использую:

  • Asp. Net Core 2.2.0
  • Serilog 2.9.0
  • Serilog.AspNetCore 3.2.0
  • Serilog.Sinks.MsSqlServer 5.1.3

Я настраиваю Serilog в appsettings.json:

  "Serilog": {
    "MinimumLevel": "Information",
    "WriteTo": [
      {
        "Name": "MSSqlServer",
        "Args": {
          "connectionString": "Server=MyServer;Database=MyDatabase;Integrated Security=SSPI;",
          "schemaName": "MySchema",
          "tableName": "Log",
          "autoCreateSqlTable": "true"
        }
      },
      {
        "Name": "File",
        "Args": {
          "path": ".\\Logs\\MyApp.log",
        }
      }
    ]
  },

В моем Program.cs:

var host = WebHost.CreateDefaultBuilder(args)
    .UseStartup<Startup>()
    .UseSerilog((hostingContext, loggerConfiguration) =>
                 loggerConfiguration
                .ReadFrom
                .Configuration(hostingContext.Configuration))
    .Build();

Log.Information("Starting application ...");

Я вижу этот начальный журнал, записанный как в файл, так и в базу данных.

Но последующие операторы Log.Information(), выполненные в ходе обработки веб-запроса (точка входа Controller HttpPost), записываются только в файл - не в базу данных.

В моем коде нет ничего, что могло бы изменить Serilog config. Я не понимаю, почему первоначальный журнал будет записан в базу данных, но не последующий.

Я настроил собственный журнал

SelfLog.Enable(msg => Debug.WriteLine(msg));

, но Serilog не выдает никаких исключений (или, по крайней мере, это не запись их для отладки вывода).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...