Logging Log4j级别未按预期工作

Logging Log4j级别未按预期工作,logging,log4j2,Logging,Log4j2,我将log4j添加到我的项目中,这样我就可以正确地删除它。但当我将日志级别设置为INFO或更高时,它会一直显示调试级别的日志。这里是我创建记录器的类的一部分: public abstract class DefaultDaoImpl<T> implements DefaultDao<T> { private EntityManager em; private Class<T> classeEntidade; private static final Logg

我将log4j添加到我的项目中,这样我就可以正确地删除它。但当我将日志级别设置为INFO或更高时,它会一直显示调试级别的日志。这里是我创建记录器的类的一部分:

public abstract class DefaultDaoImpl<T> implements DefaultDao<T> {

private EntityManager em;
private Class<T> classeEntidade;
private static final Logger logger = Logger.getLogger(DefaultDaoImpl.class);

public DefaultDaoImpl(Class<T> classeEntidade) {
    this.classeEntidade = classeEntidade;
    logger.setLevel(Level.INFO);
    BasicConfigurator.configure();
}

注意:调试日志来自hibernate。也许这是一个休眠配置

我建议您使用配置文件配置log4j2,并在该配置文件中指定所需的级别。对于其他依赖于实现细节的内容,当升级到更新版本的log4j2时,代码可能会中断

也就是说,请查看上的用户手册页面。关键的一点是,您需要在以编程方式修改配置后调用LoggerContext.updateLogers方法

2847 [main] DEBUG org.hibernate.engine.jdbc.internal.LogicalConnectionImpl  - Releasing JDBC connection
2847 [main] DEBUG org.hibernate.engine.jdbc.internal.LogicalConnectionImpl  - Releasing JDBC connection
2847 [main] DEBUG org.hibernate.engine.jdbc.internal.LogicalConnectionImpl  - Released JDBC connection
2847 [main] DEBUG org.hibernate.engine.jdbc.internal.LogicalConnectionImpl  - Released JDBC connection
2847 [main] DEBUG org.hibernate.engine.jdbc.internal.LogicalConnectionImpl  - Released JDBC connection
2847 [main] DEBUG org.hibernate.engine.jdbc.internal.LogicalConnectionImpl  - Released JDBC connection