Mybatis日志Log4j与Logback

2024-03-01 13:33:00 浏览数 (1)

一、Log4j与Logback的区别?

发展历史和维护

Log4j是最早的Java日志框架之一,具有较长的历史;然而Log4j 1.x版本在性能和并发性方面存在一些限制,并且已经停止维护。

Logback是由Log4j创始人Ceki Gülcü开发的后继项目,旨在解决Log4j的问题,并提供更好的性能和可靠性,因此Logback可以被视为Log4j的升级版。

Logback是Log4j的升级版,具有更好的性能、效率和灵活性。如果你正在开始一个新项目或者计划升级现有项目的日志框架,Logback是一个较好的选择。

二、Slf4j 依赖

使用 Slf4j 可以让你的应用程序与具体的日志实现库解耦,从而可以灵活地切换和配置不同的日志库,例如 Log4j、Logback等。

打开项目的 pom.xml 文件,在其中添加依赖的配置。

代码语言:javascript复制
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.32</version> <!-- 替换为您想要使用的Slf4j版本 -->
</dependency>

三、Logback使用

1、logback-core:logback-core是Logback框架的核心组件,它提供了日志记录的基本功能和API。它实现了日志事件的处理和分发,以及日志的格式化和输出等核心功能。logback-core是一个独立的模块,可以与其他日志门面(如Slf4j)配合使用。

代码语言:javascript复制
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.2.6</version> <!-- 替换为您想要使用的版本 -->
</dependency>

2、logback-classic:logback-classic是logback框架的经典实现,它扩展了logback-core,并提供了对Slf4j的支持。它使用Slf4j作为日志门面,并提供了与Slf4j的互操作性,可以无缝地与Slf4j集成。logback-classic还提供了更多的功能,如上下文(Context)管理、日志配置文件解析、配置自动重新加载等。

代码语言:javascript复制
 <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.6</version> <!-- 替换为您想要使用的Logback版本 -->
 </dependency>

logback.xml配置文件

在main的资源resources目录下创建 logback.xml 文件

这是一个简单的logback.xml配置文件,将日志输出到控制台,将日志输出到文件。

代码语言:javascript复制
<configuration
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>logs/application.log</file>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>
</configuration>

在代码中使用 Logback 记录日志,在你的 Java 代码中导入 Logback 的相关类。

例如,使用Logback的示例代码,放在测试类如下;

代码语言:javascript复制
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class 测试类名  {
    private static final Logger logger = LoggerFactory.getLogger(测试类名 .class);

    public void doSomething() {
        logger.info("Logging with Logback");
    }
}

四、Log4j使用

在 Maven 项目的 pom.xml 文件中,移除 Logback 的依赖项,并添加 Log4j 的依赖项。您可以使用以下依赖项配置;

代码语言:javascript复制
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.32</version>
</dependency>

<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>2.14.1</version>
</dependency>

<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>2.14.1</version>
</dependency>

创建 Log4j 的配置文件,通常命名为 log4j2.xml。将以下内容复制到配置文件中;

确保 log4j2.xml 配置文件位于项目的类路径下(通常是 src/main/resources 目录)。

代码语言:javascript复制
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>
        </Console>
        <File name="FILE" fileName="logs/application.log">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="INFO">
            <AppenderRef ref="CONSOLE"/>
            <AppenderRef ref="FILE"/>
        </Root>
    </Loggers>
</Configuration>

在代码中使用 Log4j 进行日志记录,在你的 Java 代码中导入 Logback 的相关类。

例如,使用 Log4j 的示例代码,放在测试类如下。

代码语言:javascript复制
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class 测试类名 {
    private static final Logger logger = LogManager.getLogger(测试类名.class);

    public void doSomething() {
        logger.info("Logging with Log4j");
    }
}

五、查看日志内容

1、运行应用程序:在 IDEA 中,选择您的应用程序的入口点类(例如 MyBatisTest),右键单击并选择 "Run" 或 "Debug"。

2、打开控制台窗口:一旦应用程序开始运行,控制台窗口将自动打开。

如果您无法看到控制台窗口,请在底部工具栏中选择 "View" -> "Tool Windows" -> "Run" 。

"View" -> "Tool Windows" -> "Debug",以显示运行/调试窗口,其中包含控制台选项卡。

3、查看日志输出:在控制台窗口的选项卡中,您将看到应用程序的日志输出,您可以滚动查看日志消息,以及根据需要过滤和搜索特定的日志消息。

0 人点赞