自定义MyBatis日志

来源:互联网 发布:水文气象数据的重要性 编辑:程序博客网 时间:2024/05/22 05:18

自定义MyBatis日志

    MyBatis使用其内部LoggerFactory作为真正的日志类库使用的门面。其内部的LaggerFactory会将日志记录任务委托给如下的所示某一个日志实现,日志记录优先级由上到下顺序递减:
    SLF4J  
    Apache Commons Logging  
    Log4j2  
    Log4j  
    JDK logging  
 日志类jar包下载:http://download.csdn.net/download/suwu150/9661151
    如果MyBatis未发现上述日志记录实现,这里的实现指的是导入必要的包和配置文件,比如log4j的实现则需要导入log4j-1.2.17.jar包和配置文件 ,如没实现,则MyBatis的日志记录功能无效,如果你的运行环境中,在classpath中有多个可用的日志类库,也就是实现了多个日志记录方式,并且你希望MyBaits使用某个特定的日志实现,你可以通过调用以下其中一个方法:
    org.apache.ibatis.logging.LogFactory.useSlf4jLogging();  
    org.apache.ibatis.logging.LogFactory.useLog4JLogging();  
    org.apache.ibatis.logging.LogFactory.useLog4J2Logging();  
    org.apache.ibatis.logging.LogFactory.useJdkLogging();  
    org.apache.ibatis.logging.LogFactory.useCommonsLogging();  
    org.apache.ibatis.logging.LogFactory.useStdOutLogging();  
    注:

    如果你想自定义MyBatis日志记录,你应该在调用任何其它方法之前调用以上的其中一个方法

如下面所示,程序代码

package com.mybatis.test;import java.io.IOException;import java.io.InputStream;import java.util.Date;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Test;import com.mybatis.mappers.StudentMapper;import com.mybatis.pojo.Student;import com.mybatis.utils.MyBatisSqlSessionFactory;public class StudentMapperTest {@Testpublic void test_insertStudent(){//org.apache.ibatis.logging.LogFactory.useStdOutLogging();/标准日志SqlSession session=null;try {// 获取配置文件InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");// 生成工厂对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 使用工厂对象生成sqlsession    session = sqlSessionFactory.openSession();// 使用sqlsession获得映射接口的实现类对象,接口的引用指向实现类的对象StudentMapper studentMapper = session.getMapper(StudentMapper.class);Student student = new Student(3, "suwu150", "1730@qq.com",new Date());studentMapper.insertStudent(student);session.commit();System.out.println("执行完毕");} catch (IOException e) {session.rollback();e.printStackTrace();}}}
使用log4j日志jar包来生成日志结果:

如果要使用标准输出,则可以在方法开始处添加语句:org.apache.ibatis.logging.LogFactory.useStdOutLogging();,结果如下图所示:


1 0
原创粉丝点击