引入日志查看所执行的sql语句
logImpl指定 MyBatis 所用日志的具体实现,未指定时将自动查找。可取值为SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING,
1、添加依赖
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
2、针对log4j进行配置
resources/log4j.properties 名称和位置固定
log4j.rootLogger=DEBUG,console # debug就是需要输出的日志等级,只有大于等于debug的日志信息才进行输出
# 控制台(console)
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%m%n
3、全局配置
mybatis-config.xml
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
4、执行操作,则在控制台上查看输出
==> Preparing: select * from t_users
==> Parameters:
<== Total: 4
Log4j
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIXSyslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
日志级别详解
只有大于等于配置等级的日志信息才进行输出
| 日志级别 | 描述 |
|---|---|
| OFF 关闭 | 最高级别,不输出日志 |
| FATAL 致命 | 输出非常严重的可能会导致应用程序终止的错误 |
| ERROR 错误 | 输出错误,但应用还能继续运行 |
| WARN 警告 | 输出可能潜在的危险状况 |
| INFO 信息 | 输出应用运行过程的详细信息 |
| DEBUG 调试 | 输出更细致的对调试应用有用的信息 |
| TRACE 跟踪 | 输出更细致的程序运行轨迹 |
| ALL 所有 | 输出所有级别信息 |
编程使用
private static final Logger logger=Logger.getLogger(UserMapperTest.class); 获取日志记录器对象
在方法中输出日志信息
logger.trace("输出内容"); 其中方法名称对应的就是日志等级
logger.warn("输出内容");
输出格式定义
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
本文介绍了如何在Mybatis中配置Log4j以查看执行的SQL语句,包括添加依赖、配置log4j.properties文件、全局配置mybatis-config.xml,以及日志级别的详细解释,帮助开发者更好地理解和控制日志输出。
1015

被折叠的 条评论
为什么被折叠?



