Если стоимость создания вашего параметра для метода регистрации высока, вам следует сначала вызвать метод guard. В приведенном вами примере нет никакого смысла, поскольку статическая строка не требует снижения производительности, и, как вы правильно догадываетесь, каркас ведения журналов в любом случае выполняет проверку, прежде чем принять решение о том, регистрировать ли ее.
Но учтите следующее;
logger.debug(myObject.someMethod());
В этом случае myObject.someMethod()
будет вызываться до для регистратора, получающего от него возвращаемое значение. Если этот метод выполняет длительные операции, то вы будете страдать от снижения производительности независимо от того, включен регистратор для отладки или нет. В этом случае вы захотите использовать isDebugEnabled()
до совершения этого вызова.