我试图在.Net Core 1.1控制台应用程序中实现SQL Server的Serilog接收器(v.13.0),但是当我尝试在我定义的表中写入时,结果很遗憾总是空的 . 我试着按照GitHub中提供的文档和StackOverflow中的其他建议,但没有任何东西可以帮助我正确 . 我可能错过了什么,但是什么?

我试图在Main中实现的代码如下

private static Serilog.ILogger _seriLogger;
        . . . . . . .
        var columnOptions = new ColumnOptions();
        columnOptions.Store.Remove(StandardColumn.MessageTemplate);
        // Rename columns
        columnOptions.Exception.ColumnName = "Controller";
        columnOptions.Properties.ColumnName = "Action";
        // Add a custom column
        columnOptions.AdditionalDataColumns = new Collection<DataColumn>
        {
            new DataColumn { AllowDBNull = true, ColumnName = "ExtraInfo", DataType = typeof(string)}
        };

        var serviceProvider = new ServiceCollection()
        .AddLogging()
        .AddSingleton<Serilog.ILogger>(x =>
        {
            return new LoggerConfiguration()
                    .WriteTo.MSSqlServer("Server=(localdb)\\HR2014;Database=MyLog;User Id=serilogdb;Password=********;", "Logs",
                    autoCreateSqlTable: true,
                    restrictedToMinimumLevel: Serilog.Events.LogEventLevel.Debug,
                    batchPostingLimit: 1,
                    period: TimeSpan.Zero
                    /* , columnOptions: columnOptions */)
                    .CreateLogger();
        })
        .BuildServiceProvider();

        //configure logging
        serviceProvider
            .GetService<ILoggerFactory>()
            .AddSerilog();

        _seriLogger = serviceProvider.GetService<Serilog.ILogger>();

        _seriLogger.Debug("test");

我想指出几件事:

  • 我没有得到任何编译器或运行时错误;

  • 表日志已成功创建,但是当我取消注释columnOptions时,根本不创建表,并且不显示任何错误消息 .

欢迎任何可能的帮助 .

UPDATE

当我尝试

_seriLogger.Information("test");

而不是

_seriLogger.Debug("test");

我有错误meessage:System.StackOverflowException .