如何在Log4j2 properties文件中屏蔽Hibernate弃用警告信息
用Log4j2 Properties配置消除Hibernate特定弃用警告
需要消除的Hibernate弃用警告如下:
[WARN ] [2023-05-09 11:19:46.567] [deprecation.createCriteria:1832] - HHH90000022: Hibernate's legacy org.hibernate.Criteria API is deprecated; use the JPA javax.persistence.criteria.CriteriaQuery instead
已通过Log4j2 XML配置实现需求,现需转换为Log4j2 .properties 格式,以下是对应两种方案的写法:
方案1:通过正则过滤指定警告(对应XML的RegexFilter实现)
在Log4j2 properties中,为目标logger添加正则过滤器,精准屏蔽指定警告:
# 定义针对org.hibernate.orm.deprecation的logger logger.hibernate-deprecation.name = org.hibernate.orm.deprecation logger.hibernate-deprecation.additivity = false logger.hibernate-deprecation.level = WARN # 添加正则过滤器,匹配HHH90000022标识并拒绝输出 logger.hibernate-deprecation.filter.1.type = RegexFilter logger.hibernate-deprecation.filter.1.regex = .*HHH90000022.* logger.hibernate-deprecation.filter.1.onMatch = DENY logger.hibernate-deprecation.filter.1.onMismatch = NEUTRAL
方案2:提升日志级别屏蔽警告(对应XML的level=ERROR实现)
直接将org.hibernate.orm.deprecation的日志级别设为ERROR,直接屏蔽所有WARN级别的弃用警告:
logger.hibernate-deprecation.name = org.hibernate.orm.deprecation logger.hibernate-deprecation.additivity = false logger.hibernate-deprecation.level = ERROR
与传统Log4j配置的区别
传统Log4j的写法为:
log4j.logger.org.hibernate.orm.deprecation=error log4j.logger.org.hibernate=error
Log4j2采用logger.<自定义标识>.name的命名规则定义logger,同时支持更灵活的过滤器配置语法,写法与传统Log4j有明显差异。
内容的提问来源于stack exchange,提问作者Gotyb
相关产品推荐
相关产品推荐

