首页 > 解决方案 > Serilog 没有写入 MsSql 服务器数据库,也没有显示任何错误

问题描述

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

我使用以下 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];

我的 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;
            }
        }

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

标签: c#asp.net-core-2.1serilog

解决方案


只有一条线解决了我的问题。

Log.CloseAndFlush();

推荐阅读