#java #hibernate #log4j #log4j2
Вопрос:
Я пытаюсь настроить уровни журнала гибернации. Есть много примеров того, как настроить ведение журнала в xml-файлах или файлах свойств, но мне нужно сделать это в коде.
Это работает для одного класса:
org.apache.log4j.BasicConfigurator.configure();
Logger l = Logger.getLogger(org.hibernate.internal.SessionFactoryImpl.class);
l.setLevel(Level.DEBUG);
Но я хочу установить уровень для целой категории, такой как «org.hibernate» или «org.hibernate.SQL». Нижеприведенное не работает.
org.apache.log4j.BasicConfigurator.configure();
Logger l = Logger.getLogger("org.hibernate");
l.setLevel(Level.DEBUG);
ИЗМЕНИТЬ: Это, кажется, приемлемый обходной путь:
org.apache.logging.log4j.core.LoggerContext context = (org.apache.logging.log4j.core.LoggerContext) org.apache.logging.log4j.LogManager.getContext(false);
org.apache.logging.log4j.core.config.Configuration configuration = context.getConfiguration();
org.apache.logging.log4j.core.config.LoggerConfig logger = configuration.getLoggerConfig("org.hibernate");
logger.setLevel(org.apache.logging.log4j.Level.DEBUG);
Комментарии:
1. Есть ли какие-либо ошибки ? Переопределяется ли параметр вашего кода какой-либо другой конфигурацией из проекта ?