【发布时间】:2018-02-05 15:15:02
【问题描述】:
最近我已将 Serilog 配置为与 ASP.NET Core 2 MVC 应用程序配合使用,下一个任务是在系统的每一层上跟踪对 Web 应用程序的传入请求。所以基本上,我们想要传播一些令牌(比如由 Serilog 生成的RequestId 到较低层的应用程序)。
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.RollingFile" ],
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Microsoft": "Warning"
}
},
"WriteTo": [
{
"Name": "RollingFile",
"Args": {
"pathFormat": "log-{Hour}.txt",
"fileSizeLimitBytes": "",
"retainedFileCountLimit": "",
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Application}] [{Level}] [{RequestId}] - {Message}{NewLine}{Exception}"
}
}
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
"Properties": {
"Application": "MultilayerApp"
}
},
在日志中我们有很好的输入,比如
2018-01-19 14:06:01.165 +00:00 [App] [Warning] [0HLAV6PIMA9M0:00000001] - Accessing expired session, Key:"6e7f3ab5-db62-335d-1bc7-6824e5b918f5"
但我的问题是,在 Serilog 中,RequestId 浓缩器的实现在哪里?老实说,我找不到它。
【问题讨论】:
标签: logging asp.net-core serilog asp.net-core-logging