MyBatis~日志工厂logImpl中: STDOUT_LOGGING和LOG4J的使用

文章目录

    • 设置开启logImpl
    • STDOUT_LOGGING的使用
    • LOG4J的使用
      • LOG4J不能直接使用要有一个配置过程
      • 如何自定义类使用LOG4J

设置开启logImpl

  • 在MyBatis配置文件最前面进行设置开启
    MyBatis~日志工厂logImpl中: STDOUT_LOGGING和LOG4J的使用_第1张图片

STDOUT_LOGGING的使用

    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
  • 然后就可以直接运行, 它自动会在控制台输出日志
    MyBatis~日志工厂logImpl中: STDOUT_LOGGING和LOG4J的使用_第2张图片
  • 仔细读日志就可以发现我们使用的数据库愿是POOLED, 因为新建了一个connection最后并没有关闭, 而是将这个connection交回到了pool, 并且我们也可以很清楚看到我们的sql语句, 也可以很清楚看到我们的数据库列名和查到的数据

LOG4J的使用

  • Log4j是Apache的一个开源项目
  • 通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等
  • 可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程
  • 最爽的就是可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

LOG4J不能直接使用要有一个配置过程

  • 第一步
    加入log4j-1.2.17.jar(可以选择log4j的更高版本)到lib下。
    如果使用maven项目,也可以选择在pom.xml中新增依赖:
    <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
  • 第二步
    在CLASSPATH下建立log4j.properties。如果是maven项目在resources目录下建立该文件
    内容如下
#将等级为DEBUG的日志信思输出到console控制台和file文件这两个目的地,console和fiLe的定义在下面的代码
log4j.rootLogger=DEBUG,CONSOLE,file

#控制台输出的相关设置
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
#输出方式
log4j.appender.CONSOLE.Target = System.out
#输出级别
1og4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
#输出格式
log4j.appender.CONSOLE.layout.ConversionPattern=[%c]-%m%n

#文件输出的相关设置
log4j.appender.file=org.apache.log4j.RollingFileAppender
#输出文件的目录
log4j.appender.file.File=./log/mybatis.1og
#输出文件的最大存储量
log4j.appender.file.MaxFileSize=10mb
1og4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p][%d{
     yy-M-dd}][%C]%m%n

#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sq1=DEBUG
log4j.logger.java.sql.statement=DEBUG
log4j.logger.java.sq1.ResultSet=DEBUG
log4j.logger.java.sq1.PreparedStatement=DEBUG
  • 第三步
    相应的修改设置开始LOG4J
    <settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>
  • 第四部
    测试
    MyBatis~日志工厂logImpl中: STDOUT_LOGGING和LOG4J的使用_第3张图片
  • 当然不光控制台我们的文件中也会记录日志
    MyBatis~日志工厂logImpl中: STDOUT_LOGGING和LOG4J的使用_第4张图片

如何自定义类使用LOG4J

  • 将上述配置做好之后
  • 第一步
    在你类中属性字段中添加如下代码, 注意传入的class对象是你要使用的类
static Logger logger = Logger.getLogger(Test.class);
  • 第二步
    在你需要使用日志输出的地方添加如下代码
    @org.junit.Test
    public void log4j() {
     
        logger.debug("进入方法");
        logger.info("开始");
        try {
     
            throw new Exception("错误");
        } catch (Exception e) {
     
            logger.error(e.getMessage());
        }

        //还可以这样使用
        if (logger.isDebugEnabled()) {
     
            logger.debug("离开方法");
        }
    }
  • 第三步
    测试
    MyBatis~日志工厂logImpl中: STDOUT_LOGGING和LOG4J的使用_第5张图片
    MyBatis~日志工厂logImpl中: STDOUT_LOGGING和LOG4J的使用_第6张图片
  • logger日志的使用级别debug<-info<-error

你可能感兴趣的:(MyBatis,java,log4j,mybatis,mysql)