Serilog到LogEntries没有记录MachineName和ThreadId

时间:2015-04-23 02:06:13

标签: serilog logentries

我正在使用Serilog登录LogEntries.com但是当我配置Serilog发送富含MachineName和ThreadId的条目时,它们没有显示在LogEntries条目中。

如何格式化发送到LogEntries的条目。我是否必须手动将它们作为这些消息格式的一部分以及如何完成?

1 个答案:

答案 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()