Serilog MSSqlServer 接收器未写入 table
Serilog MSSqlServer sink not writing to table
我的 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();
当我启动应用程序时,会创建 table,因此我知道连接有效。我将输出记录到控制台和文件,但是,没有输出到数据库 table。
我做错了什么?
其他信息:使用 asp.net 核心 rc2-final,目标 net461,并使用 Serilog.Sinks.MSSqlServer 4.0.0-beta-100
乍一看,您似乎没有遗漏任何东西。尝试写入 table.
时,SQL 服务器接收器可能会抛出异常
您是否尝试检查 Serilog's self log 的输出?
Serilog.Debugging.SelfLog.Enable(msg => Console.WriteLine(msg));
更新:
看起来您 SQL Server/Local 数据库存在权限问题。此错误消息表明接收器正在尝试 运行 ALTER TABLE 语句,而用户 运行 正在使用该应用程序没有执行 ALTER TABLE 语句的权限。
更新 2:我建议您使用完整的 .NET + Serilog v1.5.14 + Serilog.Sinks.MSSqlServer v3.0.98 编写一个简单的控制台应用程序,看看您是否得到相同的行为...只是为了排除.NET Core 实现或您使用的 beta 接收器版本可能存在问题
我的 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();
当我启动应用程序时,会创建 table,因此我知道连接有效。我将输出记录到控制台和文件,但是,没有输出到数据库 table。
我做错了什么?
其他信息:使用 asp.net 核心 rc2-final,目标 net461,并使用 Serilog.Sinks.MSSqlServer 4.0.0-beta-100
乍一看,您似乎没有遗漏任何东西。尝试写入 table.
时,SQL 服务器接收器可能会抛出异常您是否尝试检查 Serilog's self log 的输出?
Serilog.Debugging.SelfLog.Enable(msg => Console.WriteLine(msg));
更新: 看起来您 SQL Server/Local 数据库存在权限问题。此错误消息表明接收器正在尝试 运行 ALTER TABLE 语句,而用户 运行 正在使用该应用程序没有执行 ALTER TABLE 语句的权限。
更新 2:我建议您使用完整的 .NET + Serilog v1.5.14 + Serilog.Sinks.MSSqlServer v3.0.98 编写一个简单的控制台应用程序,看看您是否得到相同的行为...只是为了排除.NET Core 实现或您使用的 beta 接收器版本可能存在问题