我正在尝试在.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");
我想指出一些事情:
欢迎任何可能的帮助。
更新
当我尝试
_seriLogger.Information("test");
而不是
_seriLogger.Debug("test");
我有错误meessage:System.StackOverflowException。