我已将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();
}
以下是生成日志的一部分:
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
注意:调试日志来自hibernate。也许这是一个休眠配置?
答案 0 :(得分:0)
我建议您使用配置文件配置log4j2,并在该配置文件中指定所需的级别。对于其他任何事情,您取决于实现细节,当您升级到较新版本的log4j2时,您的代码可能会中断。
也就是说,请查看Manual Configuration上的用户手册页。关键的一点是,您需要在以编程方式修改配置后调用LoggerContext.updateLoggers()
方法。