zoukankan      html  css  js  c++  java
  • Mybatis的学习3______使用log4j打印日志信息

    (本案例在maven项目中做的测试:)

    1.导包:在pom.xml中

            <!-- log4j -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>

    2.在src/resources下进行的 log4j.properties文件的编写:

    ### Log4j配置 ###
    ### 与Spring结合需要在web.xml中指定此文件位置,并添加监听器 ###
    #定义log4j的输出级别和输出目的地(目的地可以自定义名称,和后面的对应)
    #[ level ] , appenderName1 , appenderName2
    log4j.rootLogger=DEBUG,console,file
    
    #-----------------------------------#
    #1 定义日志输出目的地为控制台
    log4j.appender.console = org.apache.log4j.ConsoleAppender
    log4j.appender.console.Target = System.out
    log4j.appender.console.Threshold=DEBUG
    ####可以灵活地指定日志输出格式,下面一行是指定具体的格式 ###
    #%c: 输出日志信息所属的类目,通常就是所在类的全名
    #%m: 输出代码中指定的消息,产生的日志具体信息
    #%n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行
    log4j.appender.console.layout = org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
    
    #-----------------------------------#
    #2 文件大小到达指定尺寸的时候产生一个新的文件
    log4j.appender.file = org.apache.log4j.RollingFileAppender
    #日志文件输出目录
    log4j.appender.file.File=log/tibet.log
    #定义文件最大大小
    log4j.appender.file.MaxFileSize=10mb
    ###输出日志信息###
    #最低级别
    log4j.appender.file.Threshold=ERROR
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n
    
    #-----------------------------------#
    #3 druid
    log4j.logger.druid.sql=INFO
    log4j.logger.druid.sql.DataSource=info
    log4j.logger.druid.sql.Connection=info
    log4j.logger.druid.sql.Statement=info
    log4j.logger.druid.sql.ResultSet=info
    
    #4 mybatis 显示SQL语句部分
    log4j.logger.org.mybatis=DEBUG
    #log4j.logger.cn.tibet.cas.dao=DEBUG
    #log4j.logger.org.mybatis.common.jdbc.SimpleDataSource=DEBUG
    #log4j.logger.org.mybatis.common.jdbc.ScriptRunner=DEBUG
    #log4j.logger.org.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
    #log4j.logger.java.sql.Connection=DEBUG
    log4j.logger.java.sql=DEBUG
    log4j.logger.java.sql.Statement=DEBUG
    log4j.logger.java.sql.ResultSet=DEBUG
    log4j.logger.java.sql.PreparedStatement=DEBUG

    3.mybatis核心文件中进行配置:

      <settings>
            <setting name="logImpl" value="LOG4J"/>
        </settings>
     
    (注意configuration 的参数顺序的编写)

    一个测试,日志的输出如下:

    [org.apache.ibatis.logging.LogFactory]-Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.
    [org.apache.ibatis.logging.LogFactory]-Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.
    [org.apache.ibatis.io.VFS]-Class not found: org.jboss.vfs.VFS
    [org.apache.ibatis.io.JBoss6VFS]-JBoss 6 VFS API is not available in this environment.
    [org.apache.ibatis.io.VFS]-Class not found: org.jboss.vfs.VirtualFile
    [org.apache.ibatis.io.VFS]-VFS implementation org.apache.ibatis.io.JBoss6VFS is not valid in this environment.
    [org.apache.ibatis.io.VFS]-Using VFS adapter org.apache.ibatis.io.DefaultVFS
    [org.apache.ibatis.io.DefaultVFS]-Find JAR URL: file:/E:/IdeaProjects/Mybatis_7_24_zhujie/target/classes/com/xbf/pojo
    [org.apache.ibatis.io.DefaultVFS]-Not a JAR: file:/E:/IdeaProjects/Mybatis_7_24_zhujie/target/classes/com/xbf/pojo
    [org.apache.ibatis.io.DefaultVFS]-Reader entry: User.class
    [org.apache.ibatis.io.DefaultVFS]-Listing file:/E:/IdeaProjects/Mybatis_7_24_zhujie/target/classes/com/xbf/pojo
    [org.apache.ibatis.io.DefaultVFS]-Find JAR URL: file:/E:/IdeaProjects/Mybatis_7_24_zhujie/target/classes/com/xbf/pojo/User.class
    [org.apache.ibatis.io.DefaultVFS]-Not a JAR: file:/E:/IdeaProjects/Mybatis_7_24_zhujie/target/classes/com/xbf/pojo/User.class
    [org.apache.ibatis.io.DefaultVFS]-Reader entry: ����   1 <
    [org.apache.ibatis.io.ResolverUtil]-Checking to see if class com.xbf.pojo.User matches criteria [is assignable to Object]
    [org.apache.ibatis.datasource.pooled.PooledDataSource]-PooledDataSource forcefully closed/removed all connections.
    [org.apache.ibatis.datasource.pooled.PooledDataSource]-PooledDataSource forcefully closed/removed all connections.
    [org.apache.ibatis.datasource.pooled.PooledDataSource]-PooledDataSource forcefully closed/removed all connections.
    [org.apache.ibatis.datasource.pooled.PooledDataSource]-PooledDataSource forcefully closed/removed all connections.
    [org.apache.ibatis.transaction.jdbc.JdbcTransaction]-Opening JDBC Connection
    [org.apache.ibatis.datasource.pooled.PooledDataSource]-Created connection 996796369.
    [com.xbf.dao.UserMapper.getAllUser]-==>  Preparing: select * from user 
    [com.xbf.dao.UserMapper.getAllUser]-==> Parameters: 
    [com.xbf.dao.UserMapper.getAllUser]-<==      Total: 5
    [User{id=1, name='狂神', pwd='123456'}, User{id=2, name='老七', pwd='250'}, User{id=3, name='李四', pwd='987654'}, User{id=4, name='张三', pwd='250'}, User{id=5, name='老五', pwd='666'}]
    [org.apache.ibatis.transaction.jdbc.JdbcTransaction]-Closing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@3b69e7d1]
    [org.apache.ibatis.datasource.pooled.PooledDataSource]-Returned connection 996796369 to pool.
    
    Process finished with exit code 0
  • 相关阅读:
    当···时发生了什么?
    数据存储-3、数据库分库分表思路
    数据存储-2、反模式设计
    数据存储-1、MySQL 索引使用的注意事项
    锁机制-4、synchronized 与 lock 的区别
    锁机制-3、synchronize 实现原理
    锁机制-1、乐观锁与悲观锁以及乐观锁的一种实现方式
    线程-11、线程的生命周期
    线程-10、线程池的几种方式
    线程-9、线程池的实现原理
  • 原文地址:https://www.cnblogs.com/xbfchder/p/11237297.html
Copyright © 2011-2022 走看看