二、MyBatis中Log4j的使用

 <settings> 标签

在 mybatis 全局配置文件中通过<settings>标签控制 mybatis 全局开关

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
  
<configuration>
	<!-- mybatis 开启log4j支持功能 -->
	<settings>
		<setting name="logImpl" value="LOG4J"/>
	</settings>
	
	<environments default="dev">
		
		<environment id="dev">
			<transactionManager type="JDBC"></transactionManager>
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://localhost:3306/ssm"/>
				<property name="username" value="root"/>
				<property name="password" value="root"/>
			</dataSource>
		</environment>
	
	</environments>
	
	<mappers>
		<mapper resource="com/tao/mapper/PeopleMapper.xml"/>
	</mappers>


</configuration>

在src下,新建log4j.properties:

log4j.rootCategory=ERROR, CONSOLE ,LOGFILE

log4j.logger.com.tao.mapper=DEBUG

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%C %p  %m %n

log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=MyBatis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%C %m %L %n

Log4jTest  测试:

package com.tao.servlet;

import java.io.IOException;
import java.io.InputStream;
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 com.tao.pojo.People;

public class Log4jTest {
	
	public static void main(String[] args) throws IOException {
		InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
		//前面是工厂  实例化工厂对象时使用的是 构建者设计模式 名称标志:后面有Builder
		//构建者设计模式存在的意义:简化对象实例化的过程
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);	
		SqlSession session = sqlSessionFactory.openSession();
		List<People> peopleList = session.selectList("com.tao.mapper.PeopleMapper.selectAll");
		session.close();
		
	}

}

在src下也生成了对应的log文件

二、MyBatis中Log4j的使用

关于配置提一点:根据命名空间 配置需要的日志级别

这边配置的是mapper包下,也可以指定具体的类级别 :

namespace 属性值 ,namespace 类名

方法级别: namespace 属性值+标签 id 属性值