在serilog中记录消息的标准方法如下
Byte[] buffer;
...
log.Debug("Counted {Length} bytes in the buffer {@Buffer}", buffer.Length, buffer);
这会将Length
属性添加为long/int,将Buffer
属性添加为十六进制文本格式。
这也会导致添加一个消息属性,其中包含Length
和Buffer
的字符串表示,类似于Counted 6 bytes in the buffer ABC456
。因为Buffer
是一个十六进制字符串,所以我不想在message
中显示它,但希望将它作为事件的一个属性。
有没有办法可以忽略message
字段中的Buffer
?
发布于 2021-05-24 10:36:49
您可以使用PushProperty
添加附加属性,这些属性将被添加到using块中进行的每个日志记录调用中。
using (LogContext.PushProperty("Buffer", buffer))
{
Log.Debug("Counted {Length} bytes in the buffer", buffer.Length);
}
https://stackoverflow.com/questions/67603259
复制相似问题