我正在使用 Serilog 登录到 LogEntries.com,但是当我将 Serilog 配置为发送带有 MachineName 和 ThreadId 的条目时,它们没有出现在 LogEntries 条目中。
发送到 LogEntries 的条目如何格式化。我是否必须手动使它们成为这些消息格式的一部分,这是如何完成的?
我正在使用 Serilog 登录到 LogEntries.com,但是当我将 Serilog 配置为发送带有 MachineName 和 ThreadId 的条目时,它们没有出现在 LogEntries 条目中。
发送到 LogEntries 的条目如何格式化。我是否必须手动使它们成为这些消息格式的一部分,这是如何完成的?
LogEntries 似乎只处理消息文本而不是 serilog 条目中的属性,因此您需要将 outputTemplate 参数添加到 LogEntries sink 语句中,以处理您使用的任何丰富属性,如果您希望它们进一步显示在 serilog 中,如果您希望它们被 LogEntries 索引,您需要将它们格式化为键值对,KVP。我做了这样的事情。
var log = new LoggerConfiguration().ReadFrom.AppSettings()
.Enrich.With(
new MachineNameEnricher(),
new ThreadIdEnricher()
).WriteTo.Logentries(
ConfigurationManager.AppSettings["LogentriesToken"],
outputTemplate: "{Timestamp:G} [{Level}] Mx={MachineName} (Td={ThreadId}) {Message}{NewLine}{Exception}"
).CreateLogger()