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 }
生成
分类:
Mybatis
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术