Java日志的学习03--log4j 配置Spring JdbcTemplate已经MyBatis打印sql

简介: 今天接着说说如何在日志中配置SQL打印输出。

今天接着说说如何在日志中配置SQL打印输出。


log4j的依赖添加

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.7</version>
    <scope>provided</scope>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.7</version>
    <scope>provided</scope>
  </dependency>

JdbcTemplate 打印sql配置

在log4j.properties 中添加如下配置:

log4j.rootLogger =stdout
log4j.appender.stdout= org.apache.log4j.ConsoleAppender
log4j.logger.org.springframework.jdbc.core.JdbcTemplate=debug

这样就可以打印sql,如果还需要跟踪执行praparedStatement执行过程,添加参数,打印结果可以添加

#跟踪执行praparedStatement执行过程,添加参数
log4j.logger.org.springframework.jdbc.core.StatementCreatorUtils=debug
log4j.logger.java.sql.ResultSet = debug

原理:

在JdbcTemplate 类中有如下的代码,所以,日志级别只能设置成debug

92684aae00d665607cc255b3cab8534b_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQ1MzQ4MDg=,size_16,color_FFFFFF,t_70.png

参考配置:

log4j.rootLogger =stdout
log4j.appender.stdout= org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=debug
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
# 过滤掉第三方jar包的日志
log4j.logger.org.springframework=warn
log4j.logger.freemarker.cache=warn
#sql日志输出
log4j.logger.org.springframework.jdbc.core.JdbcTemplate=debug
#跟踪执行praparedStatement执行过程,添加参数
log4j.logger.org.springframework.jdbc.core.StatementCreatorUtils=debug
log4j.logger.java.sql.ResultSet = debug

效果如下:

ebcae7d12e7b35bfa6cad8224f4d0e77_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQ1MzQ4MDg=,size_16,color_FFFFFF,t_70.png

MyBatis打印sql配置

如果是MyBatis的话


参考配置,在log4j.xml文件中:

<configuration status="info">
  <appenders>
  <Console name="STDOUT" target="SYSTEM_OUT">
    <PatternLayout pattern="%-5level %d %logger{36} - %msg%n" />
  </Console>
</appenders>
  <loggers>
  <!--mapper接口所在的位置-->
  <logger name="com.shop.hessian.mapper" level="debug" additivity="false">
    <appender-ref ref="STDOUT" />
  </logger>
  <root level="info">
    <appender-ref ref="logfile" />
    <!--sql打印可用-->
    <appender-ref ref="STDOUT"/>
  </root>
  </loggers>
</configuration>

效果如下:

e11fff70a54ede582f914b89d085200d_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQ1MzQ4MDg=,size_16,color_FFFFFF,t_70.png

如果是SpringBoot 项目则可以直接在application.yml 添加如下配置即可:

mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5天前
|
Java 程序员 Windows
【Java知识点详解 10】为何要配置环境变量,35岁老年程序员的绝地翻身之路
【Java知识点详解 10】为何要配置环境变量,35岁老年程序员的绝地翻身之路
|
6天前
|
设计模式 消息中间件 算法
【实习总结】Java学习最佳实践!
【实习总结】Java学习最佳实践!
25 3
|
6天前
|
数据采集 安全 Java
Java并发编程学习12-任务取消(上)
【5月更文挑战第6天】本篇介绍了取消策略、线程中断、中断策略 和 响应中断的内容
30 4
Java并发编程学习12-任务取消(上)
|
6天前
|
SQL druid Java
java mysql druid mybatis-plus里使用多表删除出错的一种处理方式
java mysql druid mybatis-plus里使用多表删除出错的一种处理方式
11 0
|
4天前
|
关系型数据库 MySQL 数据库
mysql数据库bin-log日志管理
mysql数据库bin-log日志管理
|
5天前
|
存储 关系型数据库 数据库
关系型数据库文件方式存储LOG FILE(日志文件)
【5月更文挑战第11天】关系型数据库文件方式存储LOG FILE(日志文件)
16 1
|
5天前
|
NoSQL 算法 Java
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
|
5天前
|
Java
java使用AOP切面获取请求日志并记录
java使用AOP切面获取请求日志并记录
|
5天前
|
运维 监控 安全
Java一分钟之-Log4j与日志记录的重要性
【5月更文挑战第16天】Log4j是Java常用的日志框架,用于灵活地记录程序状态和调试问题。通过设置日志级别和过滤器,可避免日志输出混乱。为防止日志文件过大,可配置滚动策略。关注日志安全性,如Log4j 2.x的CVE-2021-44228漏洞,及时更新至安全版本。合理使用日志能提升故障排查和系统监控效率。
28 0
|
6天前
|
XML Java 应用服务中间件
【JavaEE】JavaEE进阶:框架的学习 - Spring的初步认识
【JavaEE】JavaEE进阶:框架的学习 - Spring的初步认识
10 0