Как я могу сказать log4net, какой appender использовать из app.config - PullRequest
5 голосов
/ 10 сентября 2010

У меня был быстрый вопрос в log4net. Как я могу указать, какой appender использовать из app.Config? Этот конкретный файл конфигурации ссылается на 2 разных приложения. Оба представляют собой файловые приложения, но указывают на разные файлы. Во всем приложении вызывается log4net, и в конструктор передается тип. как это ...

 private static readonly ILog log = LogManager.GetLogger(typeof(Foo));

Как log4net узнает, какого аппендера выбрать? Можете ли вы сопоставить типы с конкретными именованными приложениями? Я знаю, что есть 5 конструкторов для GetLogger, вы можете передать тип и имя приложения? Я вижу "repositoryName", не уверен, что это такое. Если кто-нибудь может указать мне правильное направление, я был бы очень признателен. Я хотел бы, чтобы определенный набор типов регистрировался специально для одного приложения.

Спасибо за любые советы,
~ ck в Сан-Диего

1 Ответ

6 голосов
/ 10 сентября 2010

Используйте элемент <logger>, используя полное имя класса Foo:

<logger name="full.parent.namespace.Foo">
  <level value="WARN" />
  <appender-ref ref="SomeAppender" />
</logger>

Укажите минимальный уровень и ссылку на необходимый выходной аппендер для использования.

Вы также можете использовать один <logger> для всех классов в определенном пространстве имен, пропустив имя класса.

<logger name="full.parent.namespace">
  ....
</logger>
...