我尝试使用Serilog.Settings.Configuration库来配置我的日志记录,我还使用Serilog.Sinks.AzureTableStorage个包,更具体地说是WriteTo.AzureTableStorageWithProperties
,它接受了类型为propertyColumns
的{{1}}参数。
无论我尝试了什么,我都无法使它工作,以便我可以在string[]
中传递一个字符串数组(或者使用我的环境变量中的冒号分隔语法)。
我尝试在appsettings.json
中执行类似的操作:
appsettings.json
但我收到错误消息WriteTo: [
// ...
{
"Name": "AzureTableStorageWithProperties",
"Args": {
// ...
"propertyColumns": [ "Column1", "Column2" ]
}
}
]
。
我尝试了这个:Argument value should be of type Action<>
,但是这个还吹了(但是因为它是一个不同的代码路径,所以会出现不同类型的错误。)
我也尝试过使用环境变量,例如:
"propertyColumns": "Column1, Column2"
但是,再一次没有运气:(
那么,是否有可能以某种方式使用库指定字符串数组?如果是的话,我在这里错过了什么?
如果你帮助我,我真的非常感谢
答案 0 :(得分:0)
根据您的要求,我按如下方式定义了appsettings.json
以检查此问题。
{
"Serilog": {
"Using": [ "Serilog.Sinks.Console" ],
"MinimumLevel": "Debug",
"WriteTo": [
{ "Name": "Console" },
{
"Name": "AzureTableStorageWithProperties",
"Args": {
"connectionString": "<storage-connection-string>",
"storageTableName": "mylog",
"propertyColumns": ["Column1","Column2"]
}
}
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ]
}
}
我可以检索到你提到的相同错误。然后,我发现了类似的问题如下:
Getting "Argument value should be of type Action<>." with the below appSetting.json
Configuration from appsettings.json
根据我的理解,现在可能不支持Args
的复杂对象。此外,您还可以在serilog/serilog-settings-configuration下添加问题。