Serilog输出到控制台带有ToString数据和seq带有结构化数据

问题描述

我将记录的数据输出ConsoleSeq接收器。效果很好。

当我将POCO登录到:

  • Console接收器,它是包含所有属性和数据的长文本行。
  • Seq接收器,它的结构很好,因此易于搜索/过滤/等。

现在,有一种方法可以使我们在将值输出到控制台接收器时,可以使用POCO的ToString()方法(而不是-all-属性),而对于Seq来说,正是这样,现在吗?

我现在正在尝试-某些类没有重写的ToString(),所以这意味着我将在那里获得类名。

这可能吗?

解决方法

Serilog仅捕获一次每个事件属性,然后选择ToString()或结构化表示。

直到日志记录管道中的事件才到达ConsoleSeq之类的接收器,因此单个接收器(或接收器的配置)无法影响特定属性值的方式被捕获。