在 WebSphere Application Server、log4j 中启用 MyBatis SQL 日志

Posted

技术标签:

【中文标题】在 WebSphere Application Server、log4j 中启用 MyBatis SQL 日志【英文标题】:enable MyBatis SQL logs in WebSphere Application Server, log4j 【发布时间】:2013-04-19 02:59:28 【问题描述】:

我们正在使用 mybatis 3,我想查看 SQL 日志但找不到如何启用它。我在我的应用程序中使用 log4j。 我遵循了这个 mybatis 文档 - http://mybatis.github.io/mybatis-3/logging.html ,但是当我运行应用程序时,我得到了以下异常。我错过了什么吗,

原因:org.apache.ibatis.builder.BuilderException: 解析SQL出错 映射器配置。原因: org.apache.ibatis.builder.BuilderException: 设置 logImpl 不是 已知。确保拼写正确(区分大小写)。

在mybatis的配置文件里已经给出了这个设置

<settings>
 <setting name="logImpl" value="LOG4J"/>
</settings>

【问题讨论】:

mybatis 版本从 3.0.3 升级到 3.2.2 后这个 BuilderException 消失了。但是在哪里检查日志,我在 log4j 属性中使用 File appender,但是在我用于文件 appender 的日志文件中没有形成日志。我的 mybatis 配置有这样的设置 这是我的 log4j 属性 log4j.rootLogger=TRACE,文件 log4j.logger.RawMaterialSupplier=TRACE log4j .appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=C:\\loging.log ...... ...... 任何人有一些建议,我仍然无法做到这一点。 【参考方案1】:

我的情况是一样的:我使用的是 mybatis 3.1,并且收到了同样的错误。似乎logImpl 属性是在更高版本(3.2)中添加的。 通过实验我发现,mybatis 试图使用 slf4j 进行日志记录,而我想使用 log4j。

对我来说解决方法是添加对 slf4j-log4j 桥库的依赖(我正在使用:log4j 1.2.17,slf4j-log4j12 1.7.5)。所以,解决方法不是为mybatis设置logger,而是为默认的日志接口(slf4j-api)设置另一种实现。

【讨论】:

那么如何添加配置呢? 我们有 maven 项目,所以我刚刚在我的 pom.xml 中添加了 slf4j-log4j 作为依赖项。在构建时,它被置于部署在 WAS 上的战争中

以上是关于在 WebSphere Application Server、log4j 中启用 MyBatis SQL 日志的主要内容,如果未能解决你的问题,请参考以下文章

在Intellij IDEA里面配置Tomcat和Websphere Application Server

有没有办法在 IBM WebSphere Application Server 上使用 WebSockets?

EJB 3.1绑定在Websphere Application Server上不起作用

Eclipse 远程调试 WebSphere Application Server (WAS)

在 Websphere Application Server 8.5 上运行的 Web 应用程序中的字符编码

Websphere Application Server 7 中的 HTTP 标头 Mime 类型