ibatis里面提供了四中日志记录器,一种是apache的common loggin,一种是jdk的日志记录
一种是log4j,一种是自己实现的不记录。
那么ibats是怎么来实现不同种类来切换的呢?通过顺序加载每一种日志记录器来实现,也就是如果classpath下有哪种日志记录器的jar,就用哪种来实现,代码如下:
public class LogFactory {
private static Constructor logConstructor;
static {
tryImplementation("org.apache.commons.logging.LogFactory", "com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl");
tryImplementation("org.apache.log4j.Logger", "com.ibatis.common.logging.log4j.Log4jImpl");
tryImplementation("java.util.logging.Logger", "com.ibatis.common.logging.jdk14.Jdk14LoggingImpl");
tryImplementation("java.lang.Object", "com.ibatis.common.logging.nologging.NoLoggingImpl");
}
private static void tryImplementation(String testClassName, String implClassName) {
if (logConstructor == null) {
try {
Resources.classForName(testClassName);
Class implClass = Resources.classForName(implClassName);
logConstructor = implClass.getConstructor(new Class[]{Class.class});
} catch (Throwable t) {
}
}
}
从上面可以看出来,是利用了classLoad来实现的,如果没有加载到就抛出异常,说明不采用当然的日志记录器,如果我们在lib目录下什么都没有放,那么根据代码肯定是加载了jdk的日志记录器,所以构造方法就不会为空,最终就是用的jdk来实现的。
分享到:
相关推荐
**Log4j** 是一个日志记录工具,提供灵活的日志级别控制和多种输出方式,便于调试和问题定位。其关键组件有: 1. **Logger**:记录日志的对象,通过不同的级别(DEBUG, INFO, WARN, ERROR等)控制输出。 2. **...
- **日志库**:如log4j或slf4j,用于记录Ibatis的执行日志,帮助调试和性能分析。 - **其他依赖**:如ognl,用于表达式语言支持,使得在XML中可以执行更复杂的逻辑。 学习Ibatis,除了理解这些基本概念,还需要...
8. **Struts2拦截器**:拦截器是Struts2的一大特色,你可以自定义拦截器实现特定的功能,比如权限控制、日志记录等。通过配置拦截器栈,可以实现复杂的请求处理流程。 9. **集成测试**:虽然这个例子没有集成Spring...
3. 智能缓存策略:Ibatis支持多种缓存策略,包括本地缓存和二级缓存。如果开启了缓存,需要注意的是,修改SqlMap后可能需要清空缓存,以便应用能够立即反映出最新的查询逻辑。 三、开发工具辅助 现代的IDE如...
iBATIS 支持使用 Jakarta Commons Logging 进行日志记录。通过在 XML 配置文件中设置相应的日志级别,可以详细记录 SQL 执行情况和其他关键信息。 **配置日志服务:** - **启用日志记录**:在配置文件中启用日志...
- **Logging SqlMap Activity**:记录DataMapper的操作日志,便于调试和监控。 - **The One Page JavaBeans Course**:简要介绍JavaBeans的基本概念,对于理解DataMapper的工作原理很有帮助。 - **Resources ...
- **元素**:定义框架的行为参数,例如开启或关闭日志记录。 - **元素**:为Java类型定义别名,简化配置文件。 - **元素**:指定事务管理器类型,如JDBC或JTA。 - **元素**:配置数据源信息,如JNDI数据源。 - **...
AOP则用于实现如日志记录、安全检查等跨切面关注点。在实战项目中,Spring的ApplicationContext.xml会配置Bean定义,包括Struts的Action类、Service层接口及实现、DAO层等。 再者,iBatis是一个持久层框架,它提供...
利用拦截器,开发者可以添加额外的功能,如日志记录、权限验证等,无需修改Action代码。Struts2还支持多种视图技术,如JSP、FreeMarker或Velocity,使得视图层更加灵活。 **iBatis框架详解:** iBatis是MyBatis的...
3. **日志实现**:Mybatis支持多种日志实现,包括Log4j、Logback、Java Util Logging、SLF4J等。选择哪种实现取决于你的项目配置。例如,Log4j是早期广泛使用的日志框架,而Logback是Log4j的后继者,提供了更好的...
### ibatis net 指南知识点详解 #### 1. iBATIS Data Mapper 简介 - **1.1 覆盖内容** - 本指南将详细介绍iBATIS Data Mapper的基本概念、配置... - 介绍如何配置日志记录,以便追踪SQL语句执行情况和其他重要信息。
- **<setting> 元素**:设置 SQL Map 的运行时行为,例如开启/关闭日志记录、设置默认的事务处理方式等。 - **<typeAlias> 元素**:定义 Java 类型的别名,简化 XML 映射文件中的类型引用。 - **...
此外,Struts2还提供了拦截器机制,可以方便地进行日志记录、权限控制等操作。 Spring框架则是一个全面的后端解决方案,它不仅包含了依赖注入(DI)和面向切面编程(AOP)等核心特性,还提供了数据库事务管理、持久...
此外,Spring的AOP(面向切面编程)功能允许我们在不修改业务代码的情况下实现日志记录、事务管理等横切关注点。 接着,iBatis 2.3作为一个轻量级的持久层框架,它将SQL语句与Java代码分离,使得数据库操作更加灵活...
MyBatis支持多种日志实现,如Log4j、Logback和Java内置的日志API。在SpringBoot项目中,可以在`application.properties`或`application.yml`配置文件中添加以下内容来启用日志: ```properties # application....
10. **org.apache.ibatis.logging**:日志系统,支持多种日志框架如Log4j、SLF4J和Java内置的日志API。 通过阅读这些源码,开发者可以了解到MyBatis是如何处理SQL的动态生成、结果映射、事务控制等核心功能,同时也...