在appsettings.json中添加自定义JSON Formmter

问题描述 投票:0回答:5

我创建了一个自定义的 JSON Formatter,它扩展了 ITextFormatter 并尝试将其添加到 appsetting.json 中,如下所示:

"WriteTo": [
 {
    "Name": "Console",
    "Args": {
        "formatter": "CustomizedJSONFormatter"
       // "formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog"
    }
  } 
]

默认的 jsonFormatter 工作正常,如注释行所示。 但是如果我想添加自定义的,我会得到一个错误: InvalidCastException:从“System.String”到“Serilog.Formatting.ITextFormatter”的转换无效。

有办法解决这个问题吗?

谢谢!

serilog
5个回答
6
投票

根据@SLaks的建议,需要程序集限定的类型名称:

MyNamespace.CustomizedJsonFormatter, MyAssembly

1
投票

需要像下面这样使用:

"WriteTo": [
 {
    "Name": "Console",
    "Args": {
       "customFormatter": "Serilog.Formatting.Elasticsearch.ElasticsearchJsonFormatter,Serilog.Formatting.Elasticsearch"
    }
  } 
]

1
投票

如果它对其他人有帮助:就我而言,缺少以下 Nuget 包,安装后,错误消失了:

Serilog.Formatting.Elasticsearch


0
投票

正如 @Rodrigo Leite 建议的那样,您确实需要引用 Nuget 包

Serilog.Formatting.Elasticsearch

但还需要更改appsettings文件中格式化程序的路径:

"formatter": 
"Serilog.Formatting.Elasticsearch.ElasticsearchJsonFormatter, Serilog.Formatting.Elasticsearch"

0
投票

但是这个方法似乎不适用于下面

"WriteTo": [
  {
    "Name": "File",
    "Args": {
     
      "customFormatter": "Elastic.CommonSchema.Serilog.EcsTextFormatter,Elastic.CommonSchema.Serilog",
      
    }
  }
]
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.