Как я могу переопределить все свойства массива в appsettings.json сразу - PullRequest
1 голос
/ 16 октября 2019

Я знаю, что используя appsettings.Development.json файлы, мы можем изменить настройки по умолчанию. Также я знаю, что мы можем изменить отдельные свойства в массиве json, используя array:i incidator.

Вопрос в том, можно ли переопределить все значения json одновременно. Как в примере ниже для правил входа в систему?

appsettings.Development.json

...
  "NLog": {
...
    "rules": [
      {
        "logger": "*",
        "minLevel": "Info",
        "writeTo": "logconsole"
      },
      {
        "logger": "*",
        "minLevel": "Error",
        "writeTo": "allfile"
      }
    ]
...

Пример решения appsettings.Development.json

{
  "NLog": {
    "rules:*": {
      "minLevel": "Error"
    }
  }
}

1 Ответ

0 голосов
/ 19 октября 2019

С версией NLog4.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

...