Sin*_*tic 8 .net c# logging serilog
我实际上是在尝试解决 MSSqlServer 接收器未向我的数据库表写入任何内容的问题。有人建议我连接 SelfLog 以查看发生了什么,但它实际上并没有输出任何内容,我不确定我是否遗漏了什么。这是设置方法:
public SerilogLogger()
{
Serilog.Debugging.SelfLog.Enable(
msg => System.Diagnostics.Trace.WriteLine(msg));
_logger = new LoggerConfiguration()
.WriteTo.MSSqlServer(@"Server=<MyConnectionString>", "Logs")
.WriteTo.Trace()
.CreateLogger();
}
Run Code Online (Sandbox Code Playgroud)
此类中的方法只是调用_logger此处设置的日志方法。我正在创建的日志正在通过跟踪接收器写入输出窗口,但没有任何内容进入数据库并且 Serilog 没有输出任何内容,更不用说任何错误了。我什至故意弄乱连接字符串只是为了让它输出任何东西而不是骰子。有什么想法吗?
我知道这是一个很老的问题,但我花了几天时间处理类似的问题,所以我会在这里留下一些建议。
如果您使用的是全局Log对象,请确保您确实在发送东西。Serilog 将请求排队并在您执行后将它们全部发送:
Log.CloseAndFlush();
没有这个,什么都不会被记录。确保在最后执行此操作,因为在此之后,记录器将关闭(Serilog 的生命周期文档)。
如果您不使用全局对象,则应在处理日志对象后执行此操作。
尝试通过强制显示 Serilog 是否确实显示错误。只需删除连接字符串中的一个字符或类似的内容,即可查看控制台中是否出现 Serilog 的异常。
| 归档时间: |
|
| 查看次数: |
5978 次 |
| 最近记录: |