ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MyBatis日志(STDOUT_LOGGING,LOG4J)

2020-09-21 03:03:13  阅读:749  来源: 互联网

标签:LOGGING LOG4J appender DEBUG mysql MyBatis log4j com class


logImpl
  • SLF4J
  • LOG4J
  • LOG4J2
  • JDK_LOGGING
  • COMMONS_LOGGING
  • STDOUT_LOGGING
  • NO_LOGGING
STDOUT_LOGGING标准日志输出

核心配置文件

<settings>
    <setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>

测试代码

// 获取SqlSession对象
try(SqlSession sqlSession = MyBatisUtil.getSqlSession()) {
    // 执行sql
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    List<User> userList = userMapper.selectUserList();
}

运行结果

Opening JDBC Connection
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
Created connection 330084561.
Setting autocommit to false on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@13acb0d1]
==>  Preparing: select id, name, pwd from user;
==> Parameters: 
<==    Columns: id, name, pwd
<==        Row: 1, 张三, 123456
<==        Row: 2, 李四, 123456
<==        Row: 3, 老王, 123456
<==        Row: 24, 熊二, 123456
<==      Total: 4
Resetting autocommit to true on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@13acb0d1]
Closing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@13acb0d1]
Returned connection 330084561 to pool.
什么是log4j
  • log4j是Apache的一个开源项目
  • 通过log4j可以控制日志输出的目的地是控制台,文件,GUI组件等
  • 可以控制每一条日志的输出格式
  • 可以定义日志信息的级别
  • 可以通过配置文件进行灵活的配置,不需要修改代码
添加log4j依赖
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
创建log4j配置文件

log4j.properties

# stdout和R是取了两个别名,在下边的配置中用到,也可以用其他名称,stdout配置的是标准输出,R是文件
log4j.rootLogger=debug, stdout, R

# 控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# 格式化输出文件名和行号
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
# 文件路径
log4j.appender.R.File=target/example.log
# 最大文件大小
log4j.appender.R.MaxFileSize=100KB
# 最大文件个数
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
# 格式化输出文件名和行号
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
mybatis核心配置文件
<settings>
    <setting name="logImpl" value="LOG4J"/>
</settings>

测试代码

private static Logger logger = Logger.getLogger(UserMapperTest.class);

@Test
public void test() {
    // 获取SqlSession对象
    try(SqlSession sqlSession = MyBatisUtil.getSqlSession()) {
        // 执行sql
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        List<User> userList = userMapper.selectUserList();

        Iterator<User> userIterator = userList.iterator();
        while (userIterator.hasNext()) {
            logger.debug(userIterator.next());
        }
    }
}

运行结果

DEBUG [main] (JdbcTransaction.java:137) - Opening JDBC Connection
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
DEBUG [main] (PooledDataSource.java:434) - Created connection 222511810.
DEBUG [main] (JdbcTransaction.java:101) - Setting autocommit to false on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@d4342c2]
DEBUG [main] (BaseJdbcLogger.java:137) - ==>  Preparing: select id, name, pwd from user;
DEBUG [main] (BaseJdbcLogger.java:137) - ==> Parameters: 
DEBUG [main] (BaseJdbcLogger.java:137) - <==      Total: 4
DEBUG [main] (UserMapperTest.java:26) - User(id=1, username=张三, password=123456)
DEBUG [main] (UserMapperTest.java:26) - User(id=2, username=李四, password=123456)
DEBUG [main] (UserMapperTest.java:26) - User(id=3, username=老王, password=123456)
DEBUG [main] (UserMapperTest.java:26) - User(id=24, username=熊二, password=123456)
DEBUG [main] (JdbcTransaction.java:123) - Resetting autocommit to true on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@d4342c2]
DEBUG [main] (JdbcTransaction.java:91) - Closing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@d4342c2]
DEBUG [main] (PooledDataSource.java:391) - Returned connection 222511810 to pool.

标签:LOGGING,LOG4J,appender,DEBUG,mysql,MyBatis,log4j,com,class
来源: https://www.cnblogs.com/qixioa/p/13703258.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有