MyBatis应用开发(7)日志的于定义日志实现

1.1. 从定义日志实现

实现MyBatis提供的org.apache.ibatis.logging.Log接口即可。

public interface Log {



  boolean isDebugEnabled();



  boolean isTraceEnabled();



  void error(String s, Throwable e);



  void error(String s);



  void debug(String s);



  void trace(String s);



  void warn(String s);



}

 

 

 

一个最好简易的日志实现如下所示:

/**   

* @Title: CustomLog.java

* @Package com.test.mybatis3.log

* @Description:

* @author http://www.cnblogs.com/coe2coe/

* @date 2017年4月11日 下午9:33:12

* @version V1.0   

*/

package com.test.mybatis3.log;



import org.apache.ibatis.logging.Log;



/**

* @ClassName: CustomLog

* @Description:

* @author http://www.cnblogs.com/coe2coe/

* @date 2017年4月11日 下午9:33:12

*  

*/

public class CustomLog implements Log {



public CustomLog(String clazz){

//将会输出CustomLog:org.apache.ibatis.logging.LogFactory。

System.out.println("CustomLog:" + clazz);

}



/* 是否输出DEBUG信息

 * @see org.apache.ibatis.logging.Log#isDebugEnabled()

 */

@Override

public boolean isDebugEnabled() {

return true;

}



/* 是否输出TRACE信息。

 * @see org.apache.ibatis.logging.Log#isTraceEnabled()

 */

@Override

public boolean isTraceEnabled() {

return true;

}



/* 输出ERROR信息。

 * @see org.apache.ibatis.logging.Log#error(java.lang.String, java.lang.Throwable)

 */

@Override

public void error(String s, Throwable e) {

System.out.println("ERROR:"+s);

e.printStackTrace();

}



/* 输出ERROR信息。

 * @see org.apache.ibatis.logging.Log#error(java.lang.String)

 */

@Override

public void error(String s) {

System.out.println("ERROR:"+s);

}



/* 输出DEBUG信息

 * @see org.apache.ibatis.logging.Log#debug(java.lang.String)

 */

@Override

public void debug(String s) {

System.out.println("DEBUG:"+s);



}



/* 输出TRACE信息。

 * @see org.apache.ibatis.logging.Log#trace(java.lang.String)

 */

@Override

public void trace(String s) {

System.out.println("TRACE:"+s);

}



/* 输出WARN信息。

 * @see org.apache.ibatis.logging.Log#warn(java.lang.String)

 */

@Override

public void warn(String s) {

System.out.println("WARN:"+s);

}



}

 

 

 

 

这于SqlMapConfig.xml文件被安排如下:

 <!-- 使用com.test.mybatis3.log.CustomLog日志 -->

<setting  name="logImpl"  value="com.test.mybatis3.log.CustomLog" />

 

 

 

正文介绍内容因前介绍的基于XML方式的例证程序和XML配置,除增加了logImpl配置之外。

运行结果如下:

by Mapper

CustomLog:org.apache.ibatis.logging.LogFactory

DEBUG:Logging initialized using ‘class com.test.mybatis3.log.CustomLog’
adapter.

CustomLog:org.apache.ibatis.datasource.pooled.PooledDataSource

DEBUG:PooledDataSource forcefully closed/removed all connections.

DEBUG:PooledDataSource forcefully closed/removed all connections.

DEBUG:PooledDataSource forcefully closed/removed all connections.

DEBUG:PooledDataSource forcefully closed/removed all connections.

CustomLog:com.test.mybatis3.mapper.PersonMapper.findAllPersons

CustomLog:org.apache.ibatis.transaction.jdbc.JdbcTransaction

CustomLog:org.apache.ibatis.executor.BaseExecutor

DEBUG:Opening JDBC Connection

DEBUG:Created connection 4015549.

DEBUG:Setting autocommit to false on JDBC Connection
[com.mysql.jdbc.JDBC4Connection@3d45bd]

DEBUG:==>  Preparing: select * from t_person order by id asc

DEBUG:==> Parameters:

TRACE:<==    Columns: id, name, status

TRACE:<==        Row: lisi, li si, 0

TRACE:<==        Row: zhangsan, zhang san, 0

DEBUG:<==      Total: 2

Person [id=lisi, name=li si, status=0]

Person [id=zhangsan, name=zhang san, status=0]

DEBUG:Resetting autocommit to true on JDBC Connection
[com.mysql.jdbc.JDBC4Connection@3d45bd]

DEBUG:Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@3d45bd]

DEBUG:Returned connection 4015549 to pool.

 

网站地图xml地图