在.net核心1.1控制台应用程序

时间:2017-04-04 09:53:18

标签: .net core serilog

我正在尝试在.Net Core 1.1控制台应用程序中实现SQL Server的Serilog接收器(版本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");

我想指出一些事情:

  1. 我没有得到任何编译器或运行时错误;
  2. 已成功创建表日志但是当我取消注释 columnOptions 时,根本不会创建表,并且不会显示错误消息。
  3. 欢迎任何可能的帮助。

    更新

    当我尝试

    _seriLogger.Information("test");
    

    而不是

    _seriLogger.Debug("test");
    

    我有错误meessage:System.StackOverflowException。

0 个答案:

没有答案