【发布时间】:2019-03-05 19:49:23
【问题描述】:
我已将 Serilog 设置为从 appsettings.json 读取其配置:
return WebHost.CreateDefaultBuilder(args)
.UseSerilog((ctx, config) => { config.ReadFrom.Configuration(ctx.Configuration); })
appsettings.json 具有以下指定丰富器的相关信息:
{
"Serilog": {
"WriteTo": [
{
"Name": "RollingFile",
"Args": {
"pathFormat": "%WIDGETSAPIBASEDIR%\\logs\\log-{Date}.txt"
}
},
{
"Name": "Debug"
}
],
"Enrich": [ "CorrelationId" ]
}
}
生成的日志不包含Enrich 属性中指定的任何数据。
我已导入 Serilog.Enrichers.CorrelationId,但仍然一无所获。
我也试过"Enrich": [ "WithCorrelationId" ]。我也尝试过其他的浓缩器("FromLogContext", "WithMachineName", "WithThreadId"),但仍然一无所获。
我错过了什么?
【问题讨论】:
-
是否添加了相关的 NuGet 包?例如
Serilog.Enrichers.Thread? -
您是否将输出模板添加到 args 中,例如 "outputTemplate": "\"{Timestamp:yyyy-MM-dd HH:mm:ss.fff} | {shortloglevel} | {SourceContext} | {RequestId} | {请求路径} | {提供者系统} | {Message}{NewLine}{Exception}\".",
-
@SoumenMukherjee 你是说要让丰富者登录我必须提供 outputTemplate?
-
@AngryHacker ,好吧,由于某些原因,我在模板中使用了浓缩器,但模板不起作用,我确实试图找出原因,但文档并不是很好......我确实有一个使用的 LogEnricher 类。
标签: c# .net .net-core serilog asp.net-core-2.2