Serilog删除$ type属性

时间:2019-10-09 11:11:41

标签: .net serilog

我具有以下记录器配置

select department.deptname,
       COUNT(empid)
from department
     join employee on employee.deptcode=department.deptcode
group by department.deptname

我正在执行:

new LoggerConfiguration()
  .ReadFrom.Configuration(configuration.GetSection("MyConfig"))
  .WriteTo.Console(new CompactJsonFormatter())
  .Destructure.UsingAttributes()
  .Enrich.WithProperty("CorrelationIdHeader", "someId")
  .CreateLogger()

控制台输出json始终包含$ type属性,我想将其删除

logger.Information("{@MyObject}", new MyObject {SomeVal = ""});

在配置过程中如何删除$ type?谢谢。

1 个答案:

答案 0 :(得分:2)

您需要使用CompactJsonFormatter构造JsonValueFormatter,而不会输出该类型。您可以通过在创建null时将typeTagName指定为JsonValueFormatter来做到这一点:

new CompactJsonFormatter(new JsonValueFormatter(null))