2022.5.14 mybatis日志

6、日志

6.1、日志工厂

如果一个数据库操作,出现了异常,我们需要排错。日志就是最好的助手!

曾经: sout 、 debug

现在:日志工厂!

  • SLF4J

  • LOG4J【掌握】

  • LOG4J2

  • JDK_LOGGING

  • COMMONS_LOGGING

  • STDOUT_LOGGING【掌握】

  • NO_LOGGING

在Mybatis中具体使用那个一日志实现,在设置中设定!

STDOUT_LOGGING标准日志输出

mybatis-config.xml

复制代码
 1  <?xml version="1.0" encoding="UTF-8" ?>
 2  <!DOCTYPE configuration
 3          PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4          "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5  6  <configuration>
 7  8      <!--引入外部配置文件-->
 9      <properties resource="db.properties">
10          <property name="username" value="root"/>
11          <property name="pwd" value="123456"/>
12      </properties>
13  <!--    设置日志 value 日志类型-->
14      <settings>
15          <setting name="logImpl" value="STDOUT_LOGGING"/>
16      </settings>
17  <!--    可以给实体类起别名-->
18      <typeAliases>
19          <typeAlias type="com.xing.pojo.User" alias="User"/>
20      </typeAliases>
21 22      <environments default="development">
23          <environment id="development">
24              <transactionManager type="JDBC"/>
25              <dataSource type="POOLED">
26                  <property name="driver" value="${driver}"/>
27                  <property name="url" value="${url}"/>
28                  <property name="username" value="${username}"/>
29                  <property name="password" value="${pwd}"/>
30              </dataSource>
31          </environment>
32 33      </environments>
34 35      <mappers>
36          <mapper resource="com/xing/dao/UserMapper.xml"/>
37      </mappers>
38  </configuration>
复制代码

测试

复制代码
 1  package com.xing.dao;
 2  3  import com.xing.pojo.User;
 4  import com.xing.utils.MybatisUtils;
 5  import org.apache.ibatis.session.SqlSession;
 6  import org.junit.Test;
 7  8  import java.util.HashMap;
 9  import java.util.List;
10  import java.util.Map;
11 12  public class UserDaoTest {
13 14      @Test
15      public void test() {
16          SqlSession sqlSession = MybatisUtils.getSqlSession();
17          //方式一:执行  得到接口对象调用其中方法  接口的class对象
18          UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
19          User userById = userMapper.getUserById(2);
20 21          System.out.println(userById);
22 23          //关闭SqlSession
24          sqlSession.close();
25      }
26  }
复制代码

6.2、LOG4J

什么是LOG4J

  • Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件

  • 我们也可以控制每一条日志的输出格式;

  • 通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。

  • 通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

·1、导入依赖

1  <!-- https://mvnrepository.com/artifact/log4j/log4j -->
2  <dependency>
3      <groupId>log4j</groupId>
4      <artifactId>log4j</artifactId>
5      <version>1.2.17</version>
6  </dependency>

2、log4j.properties

复制代码
 1  #将等级为DEBUG的日志信息输出到console和file两个目的地
 2  log4j.rootLogger=DEBUG,console,file
 3  4  #控制台输出的相关设置
 5  log4j.appender.console=org.apache.log4j.ConsoleAppender
 6  log4j.appender.console.Target=System.out
 7  log4j.appender.console.Threshold=DEBUG
 8  log4j.appender.console.layout=org.apache.log4j.PatternLayout
 9  log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
10 11  #文件输出的相关配置
12  log4j.appender.file=org.apache.log4j.RollingFileAppender
13  log4j.appender.file.File=./log/xing.log     #在当前项目生成log/xing.log
14  log4j.appender.file.MaxFileSize=10mb
15  log4j.appender.file.Threshold=DEBUG
16  log4j.appender.file.layout=org.apache.log4j.PatternLayout
17  log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}[%c]%m%n
18 19  #日志输出级别
20  log4j.logger.org.mybatis=DEBUG
21  log4j.logger.java.sql=DEBUG
22  log4j.logger.java.sql.Statement=DEBUG
23  log4j.logger.java.sql.ResultSet=DEBUG
24  log4j.logger.java.sql.PreparedStatement=DEBUG
复制代码

3、

复制代码
 1  <?xml version="1.0" encoding="UTF-8" ?>
 2  <!DOCTYPE configuration
 3          PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4          "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5  6  <configuration>
 7  8      <!--引入外部配置文件-->
 9      <properties resource="db.properties">
10          <property name="username" value="root"/>
11          <property name="pwd" value="123456"/>
12      </properties>
13  <!--    设置日志 value 日志类型-->
14      <settings>
15          <setting name="logImpl" value="LOG4J"/>
16      </settings>
17  <!--    可以给实体类起别名-->
18      <typeAliases>
19          <typeAlias type="com.xing.pojo.User" alias="User"/>
20      </typeAliases>
21 22      <environments default="development">
23          <environment id="development">
24              <transactionManager type="JDBC"/>
25              <dataSource type="POOLED">
26                  <property name="driver" value="${driver}"/>
27                  <property name="url" value="${url}"/>
28                  <property name="username" value="${username}"/>
29                  <property name="password" value="${pwd}"/>
30              </dataSource>
31          </environment>
32 33      </environments>
34 35      <mappers>
36          <mapper resource="com/xing/dao/UserMapper.xml"/>
37      </mappers>
38  </configuration>
复制代码

测试

 

简单使用

  • 在要使用Log4j的类中,导入包import org.apache.log4j.Logger;

  • 日志对象,参数为当前类的class

 static Logger logger = Logger.getLogger(UserDaoTest.class);

UserDaoTest

复制代码
 1  package com.xing.dao;
 2  3  import com.xing.pojo.User;
 4  import com.xing.utils.MybatisUtils;
 5  import org.apache.ibatis.session.SqlSession;
 6  import org.apache.log4j.Logger;
 7  import org.junit.Test;
 8  9  public class UserDaoTest {
10      static Logger logger = Logger.getLogger(UserDaoTest.class);
11      @Test
12      public void testLog4j() {
13  //        三个级别
14          logger.info("info:进入了testLog4j");
15          logger.debug("debug:进入了testLog4j");
16          logger.error("error:进入了testLog4j");
17      }
18  }
复制代码

生成

posted @   暴躁C语言  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示