Короткая версия: Вы также можете выполнить логическую проверку isDebugEnabled ().
Причины:
1- Если сложная логика / строка конкат. добавлен в ваше заявление отладки, вы уже будете иметь проверку на месте.
2. Вам не нужно выборочно включать оператор в «сложные» операторы отладки. Все заявления включены таким образом.
3- Вызов log.debug выполняет перед регистрацией следующее:
if(repository.isDisabled(Level.DEBUG_INT))<br/>
return;
Это в основном то же самое, что журнал вызовов. или кот. isDebugEnabled ().
ОДНАКО! Это то, что думают разработчики log4j (как и в их javadoc, и вы, вероятно, должны пойти по этому пути.)
Это метод
public
boolean isDebugEnabled() {
if(repository.isDisabled( Level.DEBUG_INT))
return false;
return Level.DEBUG.isGreaterOrEqual(this.getEffectiveLevel());
}
Это Javadoc для него
<code>/**
* Check whether this category is enabled for the <code>DEBUG</code>
* Level.
*
* <p> This function is intended to lessen the computational cost of
* disabled log debug statements.
*
* <p> For some <code>cat</code> Category object, when you write,
* <pre>
* cat.debug("This is entry number: " + i );
*
*
*
Вы несете расходы на построение сообщения, объединение в
* этот случай, независимо от того, зарегистрировано сообщение или нет.
*
*
Если вас беспокоит скорость, то вам следует написать
*
* if(cat.isDebugEnabled()) {
* cat.debug("This is entry number: " + i );
* }
*
*
*
Таким образом, вы не будете нести стоимость параметра
* конструкция, если отладка отключена для cat
. На
* с другой стороны, если cat
включена отладка, вы
* понесет затраты на оценку отладки категории
* включен дважды. Один раз в isDebugEnabled
и один раз в
debug
. Это незначительные накладные расходы
* так как оценка категории занимает около 1 %% времени
* требуется, чтобы на самом деле войти.
*
* @return boolean - true
если эта категория отлажена
* включено, false
в противном случае.
* * /