Я, вероятно, здесь упускаю важный момент, но я понимаю, что регистраторы определены в NLog.config
, а цели также определены в NLog.config
.
Я использую регистратор с именем "*" в качестве регистратора. Поэтому, когда я хочу записать ошибку, я делаю что-то вроде этого:
Logger.Log.Error("Oops.");
Этот код записывает в цель, которую мой регистратор указывает для использования на уровне «Ошибка». Он записывает в файл с именем «Error.log». Хорошо.
Для любого моего кода, который влияет на пользовательский интерфейс (этот код распространяется на несколько классов), я иногда хочу войти в файл UI.txt. Итак, я создал регистратор с именем «UI», и он указывает значение writeTo, которое соответствует определенной цели. Хорошо.
Перед вызовом метода .Log я использую метод GetLogger для получения регистратора пользовательского интерфейса:
NLog.LogManager.GetLogger("UI");
Затем, когда я использую эту команду, она записывает в цель пользовательского интерфейса (файл с именем UI.log):
Logger.Log.Error("Oops.");
У меня вопрос: как вернуть регистратору его прежнее значение, чтобы в следующий раз, когда я использую метод Logger.Log.Error, он записывал в Error.log, а не в UI.log? Я ожидаю, что мне нужно будет использовать другую строку, как это, но я не знаю, что поставить вместо ???:
NLog.LogManager.GetLogger("???");
Я ознакомился с документацией и не увидел ничего, что помогло бы мне понять, какой аргумент передать GetLogger, чтобы переключиться обратно на регистратор по умолчанию. Даже если передача «*» работает, она может сделать больше, чем мне нужно / нужно. Есть ли способ получить регистратор «по умолчанию», который действует до того, как вы вызовете метод GetLogger ()?