我知道使用appsettings.Development.json
文件可以覆盖默认设置。我也知道我们可以使用array:i
incidator来更改json数组中的单个属性。
问题是,是否可以一次覆盖所有json值。像以下示例中的登录规则一样?
appsettings.Development.json
...
"NLog": {
...
"rules": [
{
"logger": "*",
"minLevel": "Info",
"writeTo": "logconsole"
},
{
"logger": "*",
"minLevel": "Error",
"writeTo": "allfile"
}
]
...
示例解决方案appsettings.Development.json
{
"NLog": {
"rules:*": {
"minLevel": "Error"
}
}
}
答案 0 :(得分:0)
使用NLog版本。 4.6.7您不必覆盖所有数组属性。您可以在规则部分中将NLog Config变量用作minLevel。例如:
{
"NLog": {
"variables": {
"MinLevelInfo": "Info"
"MinLevelError": "Error"
},
"rules": [
{
"logger": "*",
"minLevel": "${MinLevelInfo}",
"writeTo": "logconsole"
},
{
"logger": "*",
"minLevel": "${MinLevelError}",
"writeTo": "allfile"
}
]
}
}
appsettings.Development.json中的示例覆盖
{
"NLog": {
"variables": {
"MinLevelInfo": "Debug"
"MinLevelError": "Debug"
}
}
现在,您只需要覆盖NLog变量,它们就会被NLog自动应用。另请参见https://github.com/NLog/NLog/pull/2709和https://github.com/NLog/NLog/pull/3184