mybatis中使用log4j的全部设置

1:下载jar

我使用的mybatis版本是3.4.4 ,log4j是1.2.17

log4j版本不能太高,高版本jar包有api和core两个jar包,这个版只有一个整合的包,

一开始我的版本是2.11,但在设置完后是一直报错java.lang.NoClassDefFoundError: org/apache/log4j/Priority

可能是mybatis的版本和log4j的高版本不兼容,于是下了版本log4j 1.2.17替换了2.4的两个包,然后就使用正常了。

2:配置文件

1)log4j.properties

建立于src根目录下

具体内容设置有很多详细教程,我的简单设置如下:

log4j.rootLogger=info,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] -%m%n
log4j.logger.mapper =DEBUG  <!--  我在这里设置路径mapper就是mybatis的mapper的路径,或者有其他设置看其他文章解释-->

 

2)mybatis-config.xml

只是在标签<settings>里加入了

 <setting name="logImpl" value="LOG4J" />    这一句必须有,是在mybatis里注册使用log4j

然后

因为我的设置里有log4j.logger.mapper =DEBUG,在mybatis使用了mapper时就会出现了日志

我的测试代码如下:里面的内容与log4j无关,只是简单的使用mybatis进行查询


    SqlSessionFactory sqlfactory=null;
    String resource="mybatis-config.xml";
    InputStream input;
    SqlSession session=null;
    try{
        input=Resources.getResourceAsStream(resource);
        sqlfactory=new SqlSessionFactoryBuilder().build(input);
        session=sqlfactory.openSession();
        QQuser user=(QQuser)session.selectOne("getQQuser","1");
        System.err.println(user.getName());
    }catch(IOException e){
        e.printStackTrace();
    }finally{
        
        if(session!=null){
            session.close();
        }
    }
    
最后就有结果:

2018-10-10 23:18:08,695 DEBUG [mapper.QQuserMapper.getQQuser] -==>  Preparing: select id,name,note from QQuser where id=1 
2018-10-10 23:18:08,772 DEBUG [mapper.QQuserMapper.getQQuser] -==> Parameters: 
2018-10-10 23:18:08,828 DEBUG [mapper.QQuserMapper.getQQuser] -<==      Total: 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值