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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: MyBatisPlus快速入门(三)MyBatisPlus配置日志输出


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

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
  • 调试程序:打印日志可以帮助开发人员快速定位问题,查看代码的执行情况,找到出错的原因。
  • 监控系统状态:通过打印日志来监控系统的运行状况,包括系统负载、请求处理时间等指标,及时发现问题并进行调整。
  • 安全审计:打印日志可以记录敏感操作,比如用户登录、数据修改等,作为安全审计的依据,确保数据的完整性和安全性。
  • 性能分析:通过打印不同级别的日志信息,可以了解应用程序的性能表现,包括响应时间、数据库查询时间等,从而优化程序并提高性能。
  • 业务分析:通过打印日志,可以对业务流程进行分析和统计,了解用户行为等信息,为业务决策提供依据。

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

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

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
1月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
208 0
|
2月前
|
XML Java 数据库连接
MyBatis的常见配置
MyBatis 常见配置包括数据库连接、类型别名、映射器等核心模块,合理配置可提升开发效率与系统性能。主要内容涵盖核心配置文件结构、关键配置项详解及配置优先级说明。
332 4
|
2月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
517 5
|
3月前
|
SQL XML Java
通过MyBatis的XML配置实现灵活的动态SQL查询
总结而言,通过MyBatis的XML配置实现灵活的动态SQL查询,可以让开发者以声明式的方式构建SQL语句,既保证了SQL操作的灵活性,又简化了代码的复杂度。这种方式可以显著提高数据库操作的效率和代码的可维护性。
272 18
|
8月前
|
Oracle 关系型数据库 Java
【YashanDB知识库】Mybatis-Plus适配崖山配置
【YashanDB知识库】Mybatis-Plus适配崖山配置
|
8月前
|
SQL Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— application.yml 中对日志的配置
在 Spring Boot 项目中,`application.yml` 文件用于配置日志。通过 `logging.config` 指定日志配置文件(如 `logback.xml`),实现日志详细设置。`logging.level` 可定义包的日志输出级别,例如将 `com.itcodai.course03.dao` 包设为 `trace` 级别,便于开发时查看 SQL 操作。日志级别从高到低为 ERROR、WARN、INFO、DEBUG,生产环境建议调整为较高级别以减少日志量。本课程采用 yml 格式,因其层次清晰,但需注意格式要求。
781 0
|
8月前
|
Java 数据库连接 微服务
微服务——MyBatis配置——事务管理
本段内容主要介绍了事务管理的两种类型:JDBC 和 MANAGED。JDBC 类型直接利用数据源连接管理事务,依赖提交和回滚机制;而 MANAGED 类型则由容器全程管理事务生命周期,例如 JEE 应用服务器上下文,默认会关闭连接,但可根据需要设置 `closeConnection` 属性为 false 阻止关闭行为。此外,提到在使用 Spring + MyBatis 时,无需额外配置事务管理器,因为 Spring 模块自带的功能可覆盖上述配置,且这两种事务管理器类型均无需设置属性。
139 0
|
8月前
|
Java 数据库连接 数据库
微服务——MyBatis配置——多环境配置
在 MyBatis 中,多环境配置允许为不同数据库创建多个 SqlSessionFactory。通过传递环境参数给 SqlSessionFactoryBuilder,可指定使用哪种环境;若忽略,则加载默认环境。`environments` 元素定义环境配置,包括默认环境 ID、事务管理器和数据源类型等。每个环境需唯一标识,确保默认环境匹配其中之一。代码示例展示了如何构建工厂及配置 XML 结构。
140 0
|
8月前
|
缓存 Java 数据库连接
微服务——MyBatis配置——常见配置
本文介绍了 MyBatis 的常见配置及其加载顺序。属性配置优先级为:方法参数传递的属性 &gt; resource/url 属性中配置 &gt; properties 元素中指定属性。同时列举了多个关键配置项,如 `cacheEnabled`(全局缓存开关)、`lazyLoadingEnabled`(延迟加载)、`useGeneratedKeys`(使用 JDBC 自动生成主键)等,并详细说明其作用、有效值及默认值。这些配置帮助开发者优化 MyBatis 的性能与行为。
140 0
|
安全 BI 网络安全
EventLog Analyzer 如何满足等保合规要求?密码有效期、产品日志保留、配置备份三大核心问题全面解答
EventLog Analyzer(ELA)助力企业满足网络安全等级保护要求,支持配置自动/手动备份、日志180天留存及密码策略管理,提升合规性与安全运营效率。

热门文章

最新文章