Serilog 没有写入 MsSql 服务器数据库,也没有显示任何错误

Gob*_*ind 1 c# serilog asp.net-core-2.1

我正在尝试使用 serilog 将日志写入 MsSql 服务器。我的应用程序是 .Net Core 2.1 控制台应用程序。我正在使用 Serilog MsSql sink

我使用以下 sql 命令创建了一个表

CREATE TABLE [Logs] (

   [Id] int IDENTITY(1,1) NOT NULL,
   [Message] nvarchar(max) NULL,
   [MessageTemplate] nvarchar(max) NULL,
   [Level] nvarchar(128) NULL,
   [TimeStamp] datetimeoffset(7) NOT NULL,  -- use datetime for SQL Server pre-2008
   [Exception] nvarchar(max) NULL,
   [Properties] xml NULL

   CONSTRAINT [PK_Logs] 
     PRIMARY KEY CLUSTERED ([Id] ASC) 
    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
           ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) 
     ON [PRIMARY]

) ON [PRIMARY];
Run Code Online (Sandbox Code Playgroud)

我的 C# 代码:

static void Main(string[] args)
        {
            try
            {
                Serilog.Debugging.SelfLog.Enable(msg => Debug.WriteLine(msg));


                Log.Logger = new LoggerConfiguration()
               .MinimumLevel.Debug()
               .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
               .Enrich.FromLogContext()
              .WriteTo.MSSqlServer("Server=xyz;Database=abc;Trusted_Connection=True;", "Logs")
              .CreateLogger();

                Log.Information("Hello");


            }
            catch (Exception ex)
            {

                throw;
            }
        }
Run Code Online (Sandbox Code Playgroud)

我的问题是 serilog 不写入数据库也没有显示任何错误。我尝试使用 Ado.Net 进行连接,它正在连接和插入。但是使用 serilog 它不起作用。我缺少什么?

Gob*_*ind 5

只有一行解决了我的问题。

Log.CloseAndFlush();
Run Code Online (Sandbox Code Playgroud)