Каков наилучший способ создания журнала для каждого экземпляра класса в log4net? - PullRequest
8 голосов
/ 26 мая 2011

У нас есть пара долгоживущих объектов одного и того же класса в системе. Их всего около 5 или 6, и они являются подключениями к внешним системам. Я хочу, чтобы у каждого из этих экземпляров был свой файл, в который они могли бы войти.

Каков наилучший способ сделать это? Я вижу только добавление регистраторов программно как ответ прямо сейчас.

UPDATE: Я хочу избежать использования файла конфигурации, потому что, если я добавлю новое соединение на другой удаленный хост, то я хочу, чтобы вывод его журнала шел в файл, названный в честь соединения, без необходимости сначала взламывать файл конфигурации. Было бы хорошо, если бы это было сделано автоматически. Я не знаю, может быть, это может быть достигнуто в конфигурационном файле один раз, и вам не нужно каждый раз редактировать его.

Ответы [ 3 ]

1 голос
/ 09 июня 2011

Лучший ответ - это программная регистрация, я прошел через ту же проблему и нашел ее единственным решением.

Для получения дополнительной помощи проверьте этот вопрос (мой) StackOverFlow Вопрос, отправленный мной

и я думаю, что ваша и моя проблема одинаковы, динамические регистраторы, повторное создание регистраторов, утилизация регистраторов и все такое во время выполнения:)

если будут еще вопросы, задавайте,рад помочь, так как я прошел через все это:

1 голос
/ 26 мая 2011

Я действительно вижу пару возможностей:

  1. Присвойте каждому журналу отдельную категорию для каждого соединения и добавьте журналы для каждой категории в разные файлы.
  2. Создавайте новые регистраторы программно, как вы предлагали.
  3. Используйте внедрение зависимостей, чтобы добавить столько отдельных логгеров, сколько вам нужно.
0 голосов
/ 29 мая 2011

У меня есть статья, которая может помочь:

http://horth.com/blog/?p=165

Речь идет об изменении файла журнала во время выполнения. Что вы можете сделать, это передать имя файла для каждого экземпляра в файл log4net. Таким образом, вы можете создать файл журнала для каждого экземпляра вашего класса.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...