我目前正在使用Serilog实现Azure应用程序Insight日志记录,除了在我的Serilog配置中使用输出模板外,它工作得很好。当将Serilog数据传递给Application时,模板似乎被忽略了。
我在appsetting.json中的serilog配置:
"Serilog": {
"Using": [ "Serilog.Sinks.ApplicationInsights" ],
"MinimumLevel": "Debug",
"WriteTo": [
{ "Name": "Console" },
{
"Name": "RollingFile",
"Args": {
"pathFormat": "logs\\log-{Date}.txt",
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}"
}
},
{
"Name": "ApplicationInsights",
"Args": {
"restrictedToMinimumLevel": "Information",
"telemetryConverter": "Serilog.Sinks.ApplicationInsights.Sinks.ApplicationInsights.TelemetryConverters.TraceTelemetryConverter, Serilog.Sinks.ApplicationInsights",
"outputTemplate": "Test Template - {Message}"
}
}
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
"Properties": {
"Application": "app"
}
},日志记录语句:
logger.Error("Test Serilog Error For AI - " + DateTime.Now);
应用程序洞察力中的输出:

这是为应用程序洞察力定制错误信息的正确方法吗?
发布于 2019-07-25 07:52:11
在检查了源代码塞利洛-水槽.应用见解之后,您会发现它没有从appsetting.json读取outputTemplate。
对于解决方法,您可以实现自定义TemplateTraceTelemetryConverter。
TemplateTraceTelemetryConverter
公共类TemplateTraceTelemetryConverter : TraceTelemetryConverter {公共覆盖IEnumerable转换( LogEvent logEvent,IFormatProvider formatProvider) { var templateParser =新MessageTemplateParser();var Template = templateParser.Parse($"Test template - {logEvent.MessageTemplate.Text}");LogEvent newLogEvent =新LogEvent(logEvent.Timestamp,logEvent.Level,logEvent.Exception,template,logEvent.Timestamp)(p logEvent.Exception(,));返回base.Convert(newLogEvent,formatProvider);}TemplateTraceTelemetryConverter
"Serilog":{“使用”:"Serilog.Sinks.ApplicationInsights","MinimumLevel":"Debug","WriteTo":[{“名称”:“控制台”,"Args":{ "outputTemplate":“测试模板-{消息}”} },{“名称”:"RollingFile","Args":{ "pathFormat":“log\log-{Date}.txt”,"outputTemplate":“{时间戳:yyyy HH:mm:ss.fff zzz} {Level} {NewLine}{NewLine}{NewLine}”} },{“名称”:"ApplicationInsights","Args":{ "restrictedToMinimumLevel":“错误”,“"YourProjectNamespace.TemplateTraceTelemetryConverter,”:telemetryConverter YourProjectNamespace //"outputTemplate":“outputTemplate {Message}”}},"FromLogContext“、"WithMachineName”、"WithThreadId“、"Properties":{”应用程序“:"app”}}https://stackoverflow.com/questions/57183780
复制相似问题