在Log4j2属性文件中禁止Hibernate不推荐使用的消息

new9mtju  于 2023-10-23  发布在  其他
关注(0)|答案(1)|浏览(141)

我试图摆脱这些错误消息出现在我们的日志/控制台了:
[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
我可以使用以下两种方法之一来使用log4j 2的XML配置文件完成此操作:

<Logger name="org.hibernate.orm.deprecation" additivity="false" level="WARN">
        <RegexFilter regex=".*HHH90000022.*" onMatch="DENY" onMismatch="NEUTRAL"/>
        </Logger>
<Logger name="org.hibernate.orm.deprecation" additivity="false" level="ERROR">
        </Logger>

但是,我们使用.properties文件来提供这个服务(任何其他服务),所以理想情况下,我需要找到与上述服务完全等效的.properties文件。
显然,使用log4j可以这样实现:

log4j.logger.org.hibernate.orm.deprecation=error

log4j.logger.org.hibernate=error

但是log4j 2的语法是不同的,我找不到任何具体的例子-有人能帮我吗?

zvokhttg

zvokhttg1#

我还没有完全弄清楚如何使用日志记录器来实现这一点,因为出于一些奇怪的原因,additivity=false似乎删除了该日志记录器的所有日志记录。
但是您也可以在appender上设置过滤器,这在我的情况下是可以接受的。我的log4j2.properties看起来像这样:

rootLogger.level=WARN
rootLogger.appenderRef.stdout.ref = LogToConsole

appenders=ConsoleAppender
appender.ConsoleAppender.type=Console
appender.ConsoleAppender.name=LogToConsole
appender.ConsoleAppender.layout.type=PatternLayout
appender.ConsoleAppender.layout.pattern=[%p] %c{1} %d{dd/MM/yyyy HH\:mm\:ss,SSS 'UTC'}{GMT} %m%n
appender.ConsoleAppender.filter.HibernateDeprecationFilter.type=RegexFilter
appender.ConsoleAppender.filter.HibernateDeprecationFilter.regex=.*HHH90000022.*
appender.ConsoleAppender.filter.HibernateDeprecationFilter.onMatch=DENY
appender.ConsoleAppender.filter.HibernateDeprecationFilter.onMismatch=NEUTRAL

请注意,这将通过过滤器传递appender的所有日志,而不仅仅是Hibernate日志。

相关问题