IDEA 集成log4j将SQL语句打印在控制台上的实现操作

实现IDEA集成log4j将SQL语句打印在控制台上的操作,需要按照下面的步骤进行:

第一步:添加log4j依赖

1.在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.30</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

2.在resources文件夹下添加log4j.properties文件:

# root logger
log4j.rootLogger=INFO, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t:%C{1}.%M(%L)]- [%p] %m%n

# SQL logger
log4j.logger.com.example.demo.dao=DEBUG, sqlappender

log4j.appender.sqlappender=org.apache.log4j.RollingFileAppender
log4j.appender.sqlappender.Append=true
log4j.appender.sqlappender.File=logs/sql.log
log4j.appender.sqlappender.MaxFileSize=10MB
log4j.appender.sqlappender.MaxBackupIndex=5
log4j.appender.sqlappender.layout=org.apache.log4j.PatternLayout
log4j.appender.sqlappender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t:%C{1}.%M(%L)]- [%p] %m%n

以上配置文件中,我们定义了两个Appender:stdoutsqlappender。其中stdout用于将日志输出到控制台,sqlappender用于将SQL语句记录到文件中。

第二步:在代码中打印SQL语句

1.在spring配置文件中开启日志输出:

<!--开启Spring SQL日志输出:statement、resultset使用log4j控制台输出-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
      destroy-method="close">
    <property name="url" value="${spring.datasource.url}" />
    <property name="username" value="${spring.datasource.username}" />
    <property name="password" value="${spring.datasource.password}" />
    <property name="filters" value="stat" />
    <property name="maxActive" value="20" />
    <property name="initialSize" value="1" />
    <property name="maxWait" value="60000" />
    <property name="minIdle" value="1" />
    <property name="timeBetweenEvictionRunsMillis" value="60000" />
    <property name="minEvictableIdleTimeMillis" value="300000" />
    <property name="validationQuery" value="select 1" />
    <property name="testWhileIdle" value="true" />
    <property name="testOnBorrow" value="false" />
    <property name="testOnReturn" value="false" />
    <property name="poolPreparedStatements" value="true" />
    <property name="maxPoolPreparedStatementPerConnectionSize"
              value="20" />
    <!-- 开启SQL日志输出 -->
    <property name="connectionProperties" value="druid.stat.slowSqlMillis=1000"/>
</bean>

以上代码中,我们在connectionProperties中增加了druid.stat.slowSqlMillis=1000配置,表示将SQL执行时间大于1秒的语句输出到日志中。

2.在相应的Dao方法中,添加如下代码,打印SQL语句:

import org.apache.ibatis.logging.LogFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class UserDaoImpl implements UserDao {

    private static final Logger LOGGER = LoggerFactory.getLogger(UserDaoImpl.class);

    // ...

    public User findUserByName(String name) {
        LOGGER.debug("find user by name: {}", name);
        return sqlSession.selectOne("com.example.demo.dao.UserDao.findUserByName", name);
    }

    // ...

}

以上代码中,我们使用LoggerFactory创建一个Logger对象,然后在查询方法中使用LOGGER.debug()打印出对应的SQL语句。

示例说明

1.示例一:使用控制台Appender输出日志

如果只是想要在IDEA控制台中查看日志输出,可以将log4j.rootLogger配置中的输出级别改为DEBUGTRACE,这样就能输出所有级别的日志。如下所示:

# root logger
log4j.rootLogger=DEBUG, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t:%C{1}.%M(%L)]- [%p] %m%n

2.示例二:将日志输出到文件

可以在log4j.properties文件中增加sqlappender,将SQL语句输出到logs/sql.log文件中。

# SQL logger
log4j.logger.com.example.demo.dao=DEBUG, sqlappender

log4j.appender.sqlappender=org.apache.log4j.RollingFileAppender
log4j.appender.sqlappender.Append=true
log4j.appender.sqlappender.File=logs/sql.log
log4j.appender.sqlappender.MaxFileSize=10MB
log4j.appender.sqlappender.MaxBackupIndex=5
log4j.appender.sqlappender.layout=org.apache.log4j.PatternLayout
log4j.appender.sqlappender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t:%C{1}.%M(%L)]- [%p] %m%n

这里定义了一个sqlappender,将com.example.demo.dao下的所有日志输出到logs/sql.log文件中。输出级别为DEBUG,格式和控制台输出相同,只是将日志内容输出到了文件中。

以上就是IDEA集成log4j将SQL语句打印在控制台上的实现操作的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IDEA 集成log4j将SQL语句打印在控制台上的实现操作 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • 详解SpringBoot与SpringCloud的版本对应详细版

    下面是详解SpringBoot与SpringCloud的版本对应详细版的攻略: 为什么需要版本对应 Spring Boot 和 Spring Cloud 都是 Spring 生态圈中重要的组件,它们的版本号关系非常密切。由于两者的版本号之间存在依赖关系,当它们的版本不兼容时会导致异常等问题。如果不按照规则来进行版本搭配,则极有可能出现版本兼容性问题,从而导致…

    Java 2023年5月19日
    00
  • Springboot内置的工具类之CollectionUtils示例讲解

    下面是讲解Spring Boot内置的工具类之CollectionUtils的攻略: 什么是CollectionUtils? CollectionUtils是Spring框架中的一个实用工具类,提供了一些针对Collection和Map的常用操作方法,可以大大简化数据集合的操作。 CollectionUtils主要方法 addAll(Collection&l…

    Java 2023年5月31日
    00
  • JDBC Template基本使用方法详解

    JDBC Template基本使用方法详解 JDBC Template简介 JDBC(Java Database Connectivity)是一个Java语言访问数据库的接口,JDBC Template是使用JDBC进行数据库操作的常用工具类,该类能够自动化处理资源申请、资源释放等常规流程,并提供了诸如CRUD、批量操作、分页查询等常用数据库操作方法,使用J…

    Java 2023年6月16日
    00
  • JavaSpringBoot报错“HeuristicMixedException”的原因和处理方法

    原因 “HeuristicMixedException” 错误通常是以下原因引起的: 分布式事务问题:如果您的代码中存在分布式事务问题,则可能会出现此错误。在这种情况下,需要检查您的代码并确保分布式事务正确。 事务管理器问题:如果您的事务管理器存在问题,则可能会出现此错误。在这种情况下,需要检查您的事务管理器并确保它们正确。 解决办法 以下是解决 “Heur…

    Java 2023年5月4日
    00
  • Spring Data JPA系列JpaSpecificationExecutor用法详解

    Spring Data JPA系列JpaSpecificationExecutor用法详解 JpaSpecificationExecutor介绍 JpaSpecificationExecutor是Spring Data JPA提供的一个接口,可以用于对JPA规范中Criteria Query查询标准的扩展,使得我们可以根据不同的查询条件,动态生成不同的查询语…

    Java 2023年5月20日
    00
  • ES6 Promise对象的应用实例分析

    下面是关于 “ES6 Promise对象的应用实例分析” 的完整攻略: 简介 ES6 中引入了 Promise 对象,它是一种异步编程解决方案,可以优雅地解决回调地狱、处理多个异步操作等问题。本文主要是针对 Promise 对象的应用实例进行分析和探讨。 创建 Promise 对象 首先我们先来了解一下 Promise 对象的创建方式。创建一个 Promis…

    Java 2023年5月26日
    00
  • Lucene单值编码压缩算法源码解析

    Lucene单值编码压缩算法源码解析 算法简介 Lucene单值编码压缩算法是一种占用空间极小、压缩率极高的算法,主要用于Lucene搜索引擎中的索引数据存储。该算法的核心思想是将一个整数序列转化为一个字节数组,最终实现对数据的高效压缩。 算法原理 Lucene单值编码压缩算法采用可变字节长度编码方式,即不同数值的编码长度可能不同。对于一个整数,首先根据它的…

    Java 2023年5月20日
    00
  • 详解IDEA搭建springBoot方式一(推荐)

    下面是详细讲解 “详解IDEA搭建springBoot方式一(推荐)” 的完整攻略: 一、前置准备 安装JDK和IntelliJ IDEA。 确认本地已经安装了maven,并且配置了maven环境变量。 二、创建Spring Boot项目 打开IntelliJ IDEA,选择Create New Project。 在左侧的“Spring Initializr…

    Java 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部