我正在WCF服务应用程序中实现Serilog。在我的Global.asax中,我试图设置全局记录器以打印日志时间,线程ID,可能记录的任何异常以及事件随附的json格式的其他属性。
我的日志设置:
Log.Logger = new LoggerConfiguration()
.Enrich.WithThreadId()
.Enrich.WithThreadName()
.Enrich.WithExceptionDetails()
.Enrich.FromLogContext()
.WriteTo.File(
path: "\\LogFiles\\Gateway\\gateway-properties-.log",
rollingInterval: RollingInterval.Day,
outputTemplate: "{Timestamp:HH:mm} [{Level}] ({ThreadId}) {Message}{NewLine}{Exception} {Properties:j}")
.CreateLogger();
Log.Information("Initilizing Application");
当我查看代码段中为Information事件创建的日志时,看起来像这样
16:28 [Information] (1) Initilizing Application
{}
当我尝试记录异常时:
throw new Exception("This is a forced exception");
...
catch (Exception ex)
{
Log.Fatal("Application could not be started", ex);
}
我在日志中看到了这个
16:28 [Fatal] (1) Application could not be started
{}
我希望看到日志项中包含的异常消息和堆栈跟踪。
在另一个位置,我试图记录请求过程的成功:
Log.Information("Transaction {0} successfully processed", request.TransactionId, request);
我看到:
16:40 [Information] (8) Transaction "the correct transaction ID" successfully processed
{}
很明显,我设置不正确或记录不正确。
具体问题