Как отключить ведение журнала отладки класса с помощью log4j? - PullRequest
2 голосов
/ 24 января 2010

В моем log4j.xml у меня

<logger name="java.sql">
   <level value="DEBUG" />
</logger>

Но, используя это, он также включает регистрацию для интерфейса Resultset. Если я хочу отключить ведение журнала для этого интерфейса, но все же хочу иметь ведение журнала отладки для statement, preparedstatement и т. Д ... Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 24 января 2010

Log4j не позволяет вам контролировать ведение журнала на основе имен классов или пакетов per se . Скорее, степень детализации управления журналированием с помощью log4j (и аналогичных регистраторов Java) определяется именами регистраторов, используемыми приложением. Если у вашего драйвера JDBC есть разные регистраторы для операторов, подготовленных операторов, наборов результатов и т. Д., Все в порядке. Однако, если он использует один регистратор для всех своих журналов, вам придется прибегнуть к какой-то фильтрации.

Для получения дополнительной информации на этой странице имеется раздел о настройке фильтров в файле конфигурации XML, а в Filter javadoc перечислены доступные (стандартные) классы фильтров. Например, вы можете фильтровать, основываясь на том, соответствует ли сообщение события регистрации данной строке.

Сказав это, подход к фильтрации будет громоздким, особенно если есть много разных сообщений, которые нужно отфильтровать в / из.

0 голосов
/ 24 января 2010

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

Хотя лучше сосредоточиться на реализации этих классов поставщиком, а не на интерфейсах.

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