今天单元测试mybatis,发现其在web项目中竟然无法使用log4j输出日志,而其在纯java工程中可以输出(两个工程使用相同的log4j配置文件)。
后来看官方文档日志一篇发现
Logging
Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具:
- SLF4J
- Apache Commons Logging
- Log4j 2
- Log4j
- JDK logging
具体选择哪个日志实现工具由MyBatis的内置日志工厂确定。它会使用最先找到的(按上文列举的顺序查找)。 如果一个都未找到,日志功能就会被禁用。
不 少应用服务器的classpath中已经包含Commons Logging,如Tomcat和WebShpere, 所以MyBatis会把它作为具体的日志实现。记住这点非常重要。这将意味着,在诸如 WebSphere的环境中——WebSphere提供了Commons Logging的私有实现,你的Log4J配置将被忽略。 这种做法不免让人悲催,MyBatis怎么能忽略你的配置呢?事实上,因Commons Logging已经存 在了,按照优先级顺序,Log4J自然就被忽略了!不过,如果你的应用部署在一个包含Commons Logging的环境, 而你又想用其他的日志框架,你可以根据需要调用如下的某一方法:
org.apache.ibatis.logging.LogFactory.useSlf4jLogging(); org.apache.ibatis.logging.LogFactory.useLog4JLogging(); org.apache.ibatis.logging.LogFactory.useJdkLogging(); org.apache.ibatis.logging.LogFactory.useCommonsLogging(); org.apache.ibatis.logging.LogFactory.useStdOutLogging();
如 果的确需要调用以上的某个方法,请在其他所有MyBatis方法之前调用它。另外,只有在相应日志实现中存在 的前提下,调用对应的方法才是有意义的,否则MyBatis一概忽略。如你环境中并不存在Log4J,你却调用了 相应的方法,MyBatis就会忽略这一调用,代之默认的查找顺序查找日志实现。
但是这种方法使用也是很麻烦 ,苦于无法解决。逛逛论坛,发现这位仁兄的文章
Mybatis 的Log4j日志输出问题 - 以及有关日志的所有问题
才发现原来前面一章xml配置中可以配置选择哪种日志输出。
<settings> <setting name="logImpl" value="LOG4J"/> </settings>
具体配置参考官方文档.
相关推荐
本文将深入探讨如何在 MyBatis 中配置 Log4j,实现日志同时输出到后台控制台和文件。 1. **日志框架集成** 在 MyBatis 中,我们通常会依赖日志框架如 Log4j、Logback 或 JDK 内置的日志系统。Log4j 以其强大的功能...
在项目中,我们需要修改Spring Boot的默认配置,指定使用Log4j2,并在项目的配置文件中(如`log4j2.xml`或`log4j2.json`)定义日志级别、输出格式和目标位置。 在项目中,"springBootMybatis"这个压缩包文件可能...
《SpringMVC 4.0 + MyBatis 3.0 整合及Log4j日志记录详解》 在当今的Java Web开发领域,SpringMVC和MyBatis是两个非常重要的框架,它们分别负责控制层和持久层的操作。SpringMVC提供了强大的MVC模式支持,而MyBatis...
配置Log4j,你需要创建一个`log4j.properties`或`log4j.xml`文件,定义日志级别(如DEBUG、INFO、WARN等)、输出目的地和布局格式。这样,你就可以在开发和调试过程中方便地追踪错误和调试信息。 在实际项目中,这...
8. **性能优化**:通过Log4j输出的SQL日志,可以分析SQL执行效率,进行优化,例如避免全表扫描,使用索引,优化JOIN操作等。 在实践中,结合Loiane的教程深入学习MyBatis动态SQL,可以帮助你更好地理解和掌握这个...
本文档主要介绍了如何将Log4j与MyBatis进行整合,以便在MyBatis执行SQL操作时记录相关的日志信息。 首先,我们来看在项目中不包含SFT4jar包的情况。在这种情况下,整合Log4j相对简单: 1. 创建配置文件:在项目的...
4. **运行并查看日志**:完成以上步骤后,当MyBatis执行SQL时,相应的SQL语句以及执行信息将会按照Log4j的配置输出到控制台或其他指定位置。 除了基础配置,我们还可以根据需求调整日志级别,例如在生产环境中可能...
7. **运行时日志输出**:在运行项目时,Mybatis会根据Log4j的配置打印相应的日志信息,包括SQL语句、参数绑定、执行时间等,这对于调试和性能优化非常有帮助。 总的来说,Mybatis和Log4j的结合使得我们能够方便地...
例如,你可以配置Log4j的日志输出级别为DEBUG,那么在运行时,MyBatis会打印出每个SQL语句及其参数,便于查看和调试。 在实际项目中,MyBatis的配置文件通常会包含以下部分: 1. 数据源配置:定义数据库连接的信息...
在项目中,通过配置`log4j.properties`或`log4j.xml`文件,可以定制日志输出级别、格式和目标,为开发者提供详细的运行日志。 5. **SpringTest**:Spring提供的测试框架,用于集成测试和单元测试。它提供了模拟对象...
Log4j 是一个功能强大且广泛使用的日志记录工具,特别是在 SSM(Spring、Spring MVC、Mybatis)整合项目中,合理地配置 Log4j 对项目的日志记录和输出至关重要。本文将详细介绍 SSM 整合中的 Log4j 配置详情,帮助...
【标题】"mybatis源码+练习代码+插件+log4j2+maven" 提供的资源包是一个综合的学习资料集合,旨在帮助用户深入理解MyBatis这一流行持久层框架,同时涵盖日志管理工具Log4j2和项目构建工具Maven。以下是这些组件的...
1. **引入Log4j配置**:在项目的`src/main/resources`目录下创建`log4j2.xml`或`log4j2.json`文件,用于定义日志级别、输出位置、格式等。 ```xml [%t] %-5level %logger{36} - %msg%n"/> ...
通过配置log4j.properties或log4j.xml文件,可以定制日志输出的位置、格式和级别,实现日志管理和分析。 在实际项目中,"spring+springMVC+mybatis+log4j框架整合"通常涉及以下步骤: 1. 引入相关jar包:添加Spring...
为了改善这些问题,Tomcat提供了一种机制,允许我们通过配置和替换特定的jar包来使用Log4j输出catalina.out日志。这可以通过修改Tomcat的配置文件并引入Log4j的jar包来实现。 下面是具体的操作步骤和配置方法: 1....
Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,在这里你可以设置不同级别的日志输出,例如DEBUG、INFO、WARN、ERROR等。 对于Ibatis,这是一个轻量级的持久层框架,它将SQL语句与Java代码分离,提供了...
本资料主要围绕MyBatis的基本CRUD操作和动态SQL展开,同时包含了日志配置文件`log4j.properties`,用于帮助调试和优化应用程序的日志输出。 首先,MyBatis的核心概念是Mapper接口和XML映射文件。在创建CRUD操作时,...
在Java应用程序中,log4j允许开发者定义多个日志级别(如DEBUG、INFO、WARN、ERROR等),并决定在何时何地将这些日志信息写入不同的输出目的地,如控制台、文件、电子邮件或者syslog服务器。这个压缩包中的log4j jar...
标题 "springMVC4.0.2+mybatis3.2.6+log4j+cxf" 描述了一个集成性的Web应用开发框架,这个框架基于Spring MVC 4.0.2、MyBatis 3.2.6、Log4j以及Apache CXF。下面将分别对这些组件进行详细的解释。 **Spring MVC ...
Mybatis日志系统涉及到两种主要的日志框架:Log4j和Logback。Log4j是早期流行的Java日志记录框架,但随着技术的发展,它的1.x版本在性能和并发性方面逐渐暴露出一些局限性,并且已经不再维护。Logback是Log4j的创始...