在控制台上打印mybatis SQL语句时出现此错误:
java.lang.NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z
我使用mybatis支持的log4j。
我的log4j.properties文件:
### Global logging configuration
log4j.rootLogger=INFO, stdout
log4j.logger.com.app.mybatis.dao=stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
奇怪的是,如果我指定要记录的类,例如
log4j.logger.com.app.mybatis.dao.MyClass=stdout
它工作正常但不适用于包装。知道会导致这种情况的任何想法吗?
答案 0 :(得分:1)
您需要将log4j升级到版本 1.2.12 +
自版本1.2.12以来添加了org.apache.log4j.Logger.isTraceEnabled()
方法,包括org.apache.log4j.Level.TRACE
*目前,最新版本为1.2.17
答案 1 :(得分:0)
我使用
解决了这个问题org.apache.ibatis.logging.LogFactory.useCustomLogging
方法并将参数作为扩展Log4jImpl类的自定义日志记录类。我重写了isTraceEnabled方法。因此不再调用错误给予方法。