我在Startup.cs中有以下声明:
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.ColoredConsole()
.WriteTo.MSSqlServer("Server=(localdb)\\MSSQLLocalDB;Database=myDb.Logging;Trusted_Connection=True;", "Logs", autoCreateSqlTable: true)
.WriteTo.RollingFile(pathFormat: Path.Combine(logPath, "Log-{Date}.txt"))
.CreateLogger();
在我的配置方法中:
loggerFactory.AddSerilog();
当我启动应用程序时,表格已创建,因此我知道连接有效。我将记录的输出记录到控制台和文件中,但是没有输出到数据库表。
我没有做什么?
其他信息:使用asp.net核心rc2-final,定位net461,并使用Serilog.Sinks.MSSqlServer 4.0.0-beta-100
答案 0 :(得分:3)
您是否尝试过检查Serilog自我日志的输出?
Serilog.Debugging.SelfLog.Out = Console.Out;
更新: 看起来像SQL Server /本地数据库的权限问题。此错误消息表明接收器正在尝试运行ALTER TABLE语句,并且运行该应用程序的用户无权执行ALTER TABLE语句。
更新2:我建议您使用完整的.NET + Serilog v1.5.14 + Serilog.Sinks.MSSqlServer v3.0.98编写一个简单的控制台应用程序,看看是否有相同的行为...只是为了排除这种可能性.NET Core实现或您正在使用的beta sink版本存在问题