MyBatisPlus快速入门(三)MyBatisPlus配置日志输出

作者主页Designer 小郑
作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲师,全栈领域优质创作者。

在这里插入图片描述

在这里插入图片描述

一、为什么要进行日志输出

1.1 什么是日志输出

Java的日志输出是指在程序运行时,通过记录一系列信息来了解程序的执行情况和状态,并将这些信息输出到控制台或者文件中等目的地

Java提供了很多种日志输出框架,比如JDK自带的java.util.logging、Log4j、Logback、Slf4j等第三方框架。这些框架提供了丰富的功能和配置选项,可以实现不同级别的日志输出、不同格式的日志消息、输出到不同的目的地(控制台、文件、数据库等),以及日志滚动、异步输出等特性。

在Java应用程序的开发和运维中,日志输出是非常重要的一环,它可以帮助我们快速定位问题,监控系统运行状况,分析业务数据,优化程序性能等。

1.2 为什么要进行日志输出

MyBatisPlus配置日志输出可以帮助我们更好地了解应用程序在运行时的行为,包括数据库操作语句、查询结果、异常信息等

通过查看日志输出,我们可以快速定位问题并进行调试,提高开发效率和程序稳定性。

此外,对于一些关键业务场景,比如数据修改等,日志记录也可以作为审计或者安全监控的依据,确保数据的完整性和安全性
在这里插入图片描述

二、MyBatisPlus可以配置哪几类日志?

2.1 Log4j2

Log4j2 是Apache基金会的一个开源项目,具有高性能、多线程安全、可扩展等特点。

Log4j2是Apache基金会的一个开源日志框架,是Log4j框架的升级版

与Log4j相比,Log4j2具有更好的性能和可靠性,并支持异步日志、自动配置等新特性。Log4j2提供了丰富的日志输出选项,可以将日志信息输出到控制台、文件、数据库等目的地,同时支持不同格式的日志消息,灵活配置各种日志属性。

可以说,Log4j2是Java应用程序中最流行、最成熟的日志框架之一,广泛应用于各种场景中,包括Web应用、大数据分析、企业应用等。

在使用Log4j2时,只需要引入相应的依赖,配置对应的配置文件即可开始记录日志。

在使用 Log4j2 作为 MybatisPlus 的日志框架时,需要在 pom.xml 中引入 log4j2 的依赖,代码如下。

<!-- pom.xml -->
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-slf4j-impl</artifactId>
  <version>${log4j2.version}</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>${log4j2.version}</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>${log4j2.version}</version>
</dependency>

然后在 log4j2 的配置文件中,配置输出级别、输出格式以及输出目的地等,代码如下。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%t] - %c.%M(%L)%n%m%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="debug">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

上述配置将日志输出到控制台,并按照指定的格式进行输出。

在这里插入图片描述

2.2 Logback

Logback是一个开源的日志框架,是log4j框架的继承者,也是目前广泛使用的Java日志框架之一

Logback 提供了良好的性能和灵活的配置选项,它支持多种日志输出格式、日志级别、日志滚动等特性,并且能够与不同的日志门面框架(如Slf4j)进行整合,方便地适应不同的项目需求。在Logback中,最基本的组成部分是Logger、Appender和Layout。

Logger用于记录日志消息,Appender用于将日志消息输出到指定的目的地,Layout用于定义日志消息的输出格式。除此之外,Logback还提供了过滤器、异步输出等高级特性,可以进一步优化日志输出的效率和可靠性。

使用 Logback 作为 MybatisPlus 的日志框架时,需要在 pom.xml 中引入 logback 的依赖,代码如下。

<!-- pom.xml -->
<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>${logback.version}</version>
</dependency>

然后在 logback 的配置文件中,配置输出级别、输出格式以及输出目的地等,代码如下。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%t] - %c.%M(%L)%n%m%n</pattern>
    </encoder>
  </appender>
  <root level="debug">
    <appender-ref ref="STDOUT"/>
  </root>
</configuration>

上述配置将日志输出到控制台,并按照指定的格式进行输出。

在这里插入图片描述

2.3 Slf4j

Slf4j 是一个简单的日志门面框架,可以与不同的日志实现进行整合

Slf4j是一个简单的、通用的日志门面框架,旨在解决Java应用中使用不同日志框架导致的兼容性问题。

Slf4j只定义了一组接口和规范,并未实现具体的日志功能,而是通过与底层日志实现框架进行适配,实现与各种日志框架的整合。Slf4j提供了丰富的日志级别、格式等配置选项,同时也支持MDC等高级功能,可以帮助开发人员快速、灵活地记录和管理日志信息

相对于直接使用Log4j或者其他日志框架,使用Slf4j的优势在于可以轻松地切换不同日志框架,并且避免引入多个日志框架导致的冲突和兼容性问题。

使用 Slf4j 作为 MybatisPlus 的日志框架时,需要在 pom.xml 中引入 slf4j 的依赖,代码如下。

<!-- pom.xml -->
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>${slf4j.version}</version>
</dependency>

然后在配置文件中,指定要使用的日志实现,代码如下。

<!-- pom.xml -->
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-slf4j-impl</artifactId>
  <version>${log4j2.version}</version>
</dependency>

在这里插入图片描述

三、什么场景下需要打印日志

在Spring Boot项目中,打印日志是非常重要的。下面列举了一些场景下需要打印日志。

输出 a = 1
测试结果 b = -2
  • 调试程序:打印日志可以帮助开发人员快速定位问题,查看代码的执行情况,找到出错的原因。

  • 监控系统状态:通过打印日志来监控系统的运行状况,包括系统负载、请求处理时间等指标,及时发现问题并进行调整。

  • 安全审计:打印日志可以记录敏感操作,比如用户登录、数据修改等,作为安全审计的依据,确保数据的完整性和安全性。

  • 性能分析:通过打印不同级别的日志信息,可以了解应用程序的性能表现,包括响应时间、数据库查询时间等,从而优化程序并提高性能。

  • 业务分析:通过打印日志,可以对业务流程进行分析和统计,了解用户行为等信息,为业务决策提供依据。

总之,在任何需要跟踪程序运行状态或者进行问题排查的场景中,打印日志都是必要的

但是注意,过多、过于详细的日志输出会给系统性能带来影响,所以需要根据实际需要进行设置。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41464123/article/details/131365342
今日推荐