Почему необходимо использовать функцию isTraceEnabled () в JBoss? - PullRequest
5 голосов
/ 01 марта 2012

Я использую класс org.jboss.logging.Logger и, похоже, натолкнулся на несоответствие. Когда у меня появляется ошибка или предупреждение, мне просто нужно использовать logger.error("error message") или logger.warn("warning message"), и оно будет отображаться на основе настроек в файле jboss-log4j.xml.

Однако, основываясь на существующем коде jboss, это обсуждение и эта ссылка , когда используется трассировка, вы должны сначала определить, включена ли она, используя logger.isTraceEnabled(). Почему кажется, что я должен это сделать только для трассировки?

1 Ответ

10 голосов
/ 01 марта 2012

Вам не «нужно».Без него все будет работать нормально.Тем не менее, ведение журнала на уровне TRACE, как правило, является многословным и может занимать значительную долю процессорного времени, даже если в конечном итоге оно фактически не регистрируется в файле.Поставив отметку if вокруг оператора logging, вы избежите этих издержек.

Я видел, что другие кодовые базы хорошего качества делают то же самое для ведения журналов на уровне DEBUG и INFO, поэтому это не ограничивается TRACE.1004 *

См. Раздел log4j руководства, касающегося работы .

...