【问题标题】:Serilog to LogEntries MachineName and ThreadId are not being loggedSerilog 到 LogEntries MachineName 和 ThreadId 没有被记录
【发布时间】:2015-04-25 01:18:00
【问题描述】:

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

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

【问题讨论】:

    标签: serilog logentries


    【解决方案1】:

    LogEntries 似乎只处理消息文本而不是 serilog 条目中的属性,因此您需要将 outputTemplate 参数添加到 LogEntries 接收器语句以处理您使用的任何丰富属性,如果您希望它们显示在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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 1970-01-01
      • 2022-07-08
      相关资源
      最近更新 更多