我正在使用Serilog登录LogEntries.com但是当我配置Serilog发送富含MachineName和ThreadId的条目时,它们没有显示在LogEntries条目中。
如何格式化发送到LogEntries的条目。我是否必须手动将它们作为这些消息格式的一部分以及如何完成?
答案 0 :(得分:4)
LogEntries似乎只处理消息文本而不处理serilog条目中的属性,因此您需要将outputTemplate参数添加到LogEntries宿语句中,以处理您希望它们显示的任何丰富属性。此外,如果你希望它们被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()