Каковы затраты на создание Log4j Logger - PullRequest
12 голосов
/ 21 апреля 2009

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

myLogger = Logger.getLogger(logKey);

Мне интересно, стоит ли мне кэшировать эти регистраторы, чтобы избежать их создания для каждого вызова, или я могу игнорировать накладные расходы.

Ответы [ 2 ]

23 голосов
/ 21 апреля 2009

Регистраторы уже кэшируются log4j, используя хранилище журналов по умолчанию (Hierarchy). Другими словами, это просто хеш-таблица поиска.

Однако, по моему опыту, вы стремитесь сделать регистратор статичным, так что в любом случае он вызывается только один раз для каждого класса.

9 голосов
/ 21 апреля 2009

Этот метод Logger.getLogger (logKey) ищет в кэше регистратора регистратор с именем, переданным в logKey. Если он не существует, он создает его. Сначала вызовите имя регистратора, будет создан регистратор, но последующие вызовы получат его из кэша, поэтому вам не нужно обрабатывать это в вашем коде.

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