删除Serilog输出中的默认属性

时间:2016-05-28 14:24:48

标签: c# logging serilog

在文件的Serilog输出中,我看到默认值是

main :: IO ()
main = do
  let seed1 = mkStdGen 124567
      (xs,seed2) = flip runRand seed1 $ do
        x <- newRand
        bs <- sample 5
        cs <- sample 10
        return $ x : (bs ++ cs)
      s = sum xs
  print s

有没有办法删除时间戳,级别,消息模板和属性,以便我只剩下这个

{
    "Timestamp": "2016-05-28T21:21:59.0932348+08:00",
    "Level": "Information",
    "MessageTemplate": "Processed {@Number} records in {@Time} ms",
    "Properties": {
        "Number": 500,
        "Time": 120
    }
}

Log.Logger按此分配

{
    "Number": 500,
    "Time": 120
}

由于

1 个答案:

答案 0 :(得分:2)

通过查看source code,看起来JsonFormatter不支持跳过这些默认属性。您可以创建自己的ITextFormatter来执行您正在寻找的内容。这是一个快速示例(不应该在生产中使用,因为它不会进行任何转义 - 它仅用于演示目的):

System.Data.Entity.Database