Рекомендуется использовать инфраструктуру java.util.logging
Затем вы можете регистрировать сообщения в любом из этих форматов
log.warning("..");
log.fine("..");
log.finer("..");
log.finest("..");
Или
log.log(Level.WARNING, "blah blah blah", e);
Затем вы можете использовать logging.properties (пример ниже), чтобы переключаться между уровнями ведения журнала, и делать все виды умных вещей, таких как запись в файлы, с вращением и т. Д.
handlers = java.util.logging.ConsoleHandler
.level = WARNING
java.util.logging.ConsoleHandler.level = ALL
com.example.blah = FINE
com.example.testcomponents = FINEST
По моему мнению, следует избегать таких фреймворков, как log4j и другие, в Java уже есть все, что вам нужно.
EDIT
Это может применяться в качестве общей практики для любого языка программирования. Возможность контролировать все уровни ведения журнала из одного файла свойств часто очень важна в корпоративных приложениях.