Две рекомендации.
Первый:
для реальной регистрации используйте современный пакет регистрации, такой как log4j или собственный встроенный протокол java. Не стоит сильно беспокоиться о производительности, проверка уровня журналирования имеет порядок наносекунд. (это целочисленное сравнение).
А если у вас более одного оператора журнала, защитите весь блок:
(log4j, например:)
if (logger.isDebugEnabled()) {
// perform expensive operations
// build string to log
logger.debug("....");
}
Это дает вам добавленную возможность управления журналом во время выполнения. Необходимость перезапуска и запуска отладочной сборки может быть очень неудобной.
Второе:
Вы можете найти утверждений больше, чем вам нужно. Утверждение - это оператор, который оценивает логический результат с необязательным сообщением:
assert (sky.state != FALLING) : "The sky is falling!";
Всякий раз, когда утверждение приводит к ложному утверждению, оно завершается ошибкой, и выдается ошибка AssertionError, содержащая ваше сообщение (это непроверенное исключение, предназначенное для выхода из приложения).
Удобно то, что они обрабатываются JVM специально и могут переключаться во время выполнения до уровня класса, используя параметр VM (перекомпиляция не требуется). Если не включено, накладные расходы равны нулю.