【问题标题】:Is it possible to log a property in serilog but not display it in message field?是否可以在 serilog 中记录属性但不在消息字段中显示它?
【发布时间】:2021-05-19 12:26:03
【问题描述】:

在 serilog 中记录消息的标准方式类似于


Byte[] buffer;
...

log.Debug("Counted {Length} bytes in the buffer {@Buffer}", buffer.Length, buffer);

这会将Length 属性添加为long/int,并将Buffer 属性添加为十六进制格式的文本。

这还会导致消息属性添加了LengthBuffer 的字符串表示形式,类似于Counted 6 bytes in the buffer ABC456。由于Buffer 是一个十六进制字符串,我不想在message 中显示它,但希望将它作为事件的属性。

有没有办法让我从 message 字段中忽略 Buffer

【问题讨论】:

    标签: serilog


    【解决方案1】:

    您可以使用 PushProperty 添加其他属性,这些属性将添加到 using 块中进行的每个日志记录调用。

            using (LogContext.PushProperty("Buffer", buffer))
            {
                Log.Debug("Counted {Length} bytes in the buffer", buffer.Length);
            }
    

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多