使用 log4j 2.13 时禁用 ORMLite 日志

Disable ORMLite logs when using log4j 2.13

我正在使用 log4j:2.13 和 ORMLite:5.1

我不知道如何在不影响我应用程序其余部分的日志级别的情况下禁用(或更改级别)ORMLite 日志。

ORMLite 的文档指出我应该执行以下操作: log4j.logger.com.j256.ormlite=DEBUG(source)

好吧,这似乎行不通。我刚开始使用 log4j。有人知道解决办法吗?

这是我的 log4j2.properties 文件:

status = error
name = PropertiesConfig

filters = threshold

filter.threshold.type = ThresholdFilter
filter.threshold.level = debug

appenders = console

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT

# Even if I set this to ERROR, log4j continues logging at debug level because I set it above..
log4j.logger.com.j256.ormlite.level = ERROR

无论我尝试什么日志级别,似乎 rootLogger.level 优先,"overrides" ormlite 设置。

这种问题往往是由于class路径下存在多个Log4J配置文件造成的。使用第一个找到的配置。可能比您的文件更早找到其他文件。

你能做什么?分析你的 class 路径,class 路径中的所有 JAR,class 路径中的所有目录(如果有的话)。如有疑问,请在调试器中检查使用的配置文件。

更新

log4j.logger的那一行不正确。如下更改(如果需要,设置其他记录器名称):

logger.ormlite.name = com.j256.ormlite
logger.ormlite.level = error