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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 今天接着说说如何在日志中配置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
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
24天前
|
存储 Oracle Java
java零基础学习者入门课程
本课程为Java零基础入门教程,涵盖环境搭建、变量、运算符、条件循环、数组及面向对象基础,每讲配示例代码与实践建议,助你循序渐进掌握核心知识,轻松迈入Java编程世界。
215 0
|
2月前
|
Java API 容器
Java基础学习day08-2
本节讲解Java方法引用与常用API,包括静态、实例、特定类型方法及构造器引用的格式与使用场景,并结合代码示例深入解析。同时介绍String和ArrayList的核心方法及其实际应用。
143 1
|
1月前
|
IDE Java 编译器
java编程最基础学习
Java入门需掌握:环境搭建、基础语法、面向对象、数组集合与异常处理。通过实践编写简单程序,逐步深入学习,打牢编程基础。
163 0
|
1月前
|
负载均衡 Java API
grpc-java 架构学习指南
本指南系统解析 grpc-java 架构,涵盖分层设计、核心流程与源码结构,结合实战路径与调试技巧,助你从入门到精通,掌握高性能 RPC 开发精髓。
172 7
|
2月前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
66 5
|
2月前
|
Java 程序员
Java基础学习day08
本节讲解Java中的代码块(静态与实例)及其作用,深入介绍内部类(成员、静态、局部及匿名)的定义与使用,并引入函数式编程思想,重点阐述Lambda表达式及其在简化匿名内部类中的应用。
124 5
|
2月前
|
Java
Java基础学习day07-作业
本作业包含六个Java编程案例:1)动物类继承与多态;2)加油卡支付系统;3)员工管理类设计;4)学生信息统计接口;5)USB设备控制;6)家电智能控制。综合运用抽象类、接口、继承、多态等面向对象技术,强化Java基础编程能力。
167 3
|
7月前
|
前端开发 Java 物联网
智慧班牌源码,采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署
智慧班牌系统是一款基于信息化与物联网技术的校园管理工具,集成电子屏显示、人脸识别及数据交互功能,实现班级信息展示、智能考勤与家校互通。系统采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署与私有化定制。核心功能涵盖信息发布、考勤管理、教务处理及数据分析,助力校园文化建设与教学优化。其综合性和可扩展性有效打破数据孤岛,提升交互体验并降低管理成本,适用于日常教学、考试管理和应急场景,为智慧校园建设提供全面解决方案。
458 70
|
安全 前端开发 Java
随着企业应用复杂度提升,Java Spring框架以其强大与灵活特性简化开发流程,成为构建高效、可维护应用的理想选择
随着企业应用复杂度提升,Java Spring框架以其强大与灵活特性简化开发流程,成为构建高效、可维护应用的理想选择。依赖注入使对象管理交由Spring容器处理,实现低耦合高内聚;AOP则分离横切关注点如事务管理,增强代码模块化。Spring还提供MVC、Data、Security等模块满足多样需求,并通过Spring Boot简化配置与部署,加速微服务架构构建。掌握这些核心概念与工具,开发者能更从容应对挑战,打造卓越应用。
141 1
|
8月前
|
存储 监控 数据可视化
SaaS云计算技术的智慧工地源码,基于Java+Spring Cloud框架开发
智慧工地源码基于微服务+Java+Spring Cloud +UniApp +MySql架构,利用传感器、监控摄像头、AI、大数据等技术,实现施工现场的实时监测、数据分析与智能决策。平台涵盖人员、车辆、视频监控、施工质量、设备、环境和能耗管理七大维度,提供可视化管理、智能化报警、移动智能办公及分布计算存储等功能,全面提升工地的安全性、效率和质量。
186 0