Как переопределить конфигурацию nlog по умолчанию?

Мы отправляем сборку фреймворка для ведения журнала, в которой используется nlog. Мы также отправляем встроенную конфигурацию nlog в качестве ресурса в нашу сборку и читаем ее при запуске (статический конструктор в нашей оболочке, который обертывает оболочку nlog с помощью класса XmlLoggingConfiguration).

Теперь мы хотели бы, чтобы разработчики могли указывать/переопределять дополнительную конфигурацию через внешний файл для своих собственных регистраторов (используя тот же формат файла конфигурации nlog).

Можем мы:

  • Обратитесь к включенным файлам в наш встроенный файл конфигурации nlog? Как разрешается путь к включаемому файлу? Если мы это сделаем, будет ли содержимое включаемого файла переопределять содержимое встроенной конфигурации nlog, которую мы читаем при запуске?
  • Могут ли разработчики использовать раздел конфигурации nlog? Отменяет ли содержимое этого раздела конфигурацию по умолчанию, которую мы указали программно?

Любые другие варианты?


person SharePoint Newbie    schedule 10.07.2012    source источник


Ответы (1)


Как разрешается путь к включаемому файлу?

Вы можете использовать во включенном имени файла:

  1. визуализаторы макета, такие как ${baseDir},
  2. переменные nlog.

Если полученное имя файла не является абсолютным, оно объединяется с каталогом, в котором находилась исходная конфигурация NLog, но в вашем случае это может быть null, поэтому вы ограничены первыми двумя вариантами.

содержимое включаемого файла переопределяет содержимое встроенной конфигурации nlog?

Нет, это содержимое добавляется к содержимому встроенной конфигурации.

Отменяет ли содержимое раздела конфигурации nlog конфигурацию по умолчанию, которую мы указали программно?

Когда вы устанавливаете конфигурацию программно, вы переопределяете любую конфигурацию, которая была установлена ​​ранее, а также отключаете автоматическое обнаружение конфигурации, в том числе из файла конфигурации приложения или NLog.config.

Но вы можете проверить, не является ли конфигурация нулевой в первый раз, прежде чем устанавливать встроенное значение. Это вызовет автоматическое обнаружение, и в случае обнаружения какой-либо конфигурации ведения журнала возвращаемое значение будет ненулевым.

person Ilya    schedule 03.01.2015