log4j使用教程详解(怎么使用log4j2)

log4j使用教程详解(怎么使用log4j2)

介绍

log4j是一个Java语言的日志记录工具,可以对程序进行日志记录,允许程序员控制日志记录输出的目的地、日志记录内容等。log4j2是log4j的升级版。本文将详细讲解如何使用log4j2。

步骤

1. 引入log4j2到项目中

在工程目录下找到 pom.xmlgradle.build 文件,在文件中添加log4j2的依赖。

  • Maven

xml
<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>

  • Gradle

groovy
dependencies {
implementation 'org.apache.logging.log4j:log4j-api:2.14.1'
implementation 'org.apache.logging.log4j:log4j-core:2.14.1'
}

2. 初始化log4j2

在工程中,创建日志配置文件并进行初始化。在 src 目录下创建 log4j2.xml 文件,具体配置可根据需要更改。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"/>
        </Console>

        <RollingFile name="RollingFile"
                     fileName="./logs/rolling.log"
                     filePattern="./logs/$${date:yyyy-MM}/rolling-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout>
                <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n</pattern>
            </PatternLayout>
            <Policies>
                <OnStartupTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB"/>
                <TimeBasedTriggeringPolicy modulate="true"/>
            </Policies>
            <DefaultRolloverStrategy max="20"/>
        </RollingFile>
    </Appenders>

    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
</Configuration>

创建一个Java类,用来测试log4j2是否初始化成功,代码如下:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class TestLog4j2 {
    private static final Logger logger = LogManager.getLogger(TestLog4j2.class);

    public static void main(String[] args) {
        logger.info("log4j2 initialized successfully.");
    }
}

运行 main 方法,控制台输出 log4j2 initialized successfully. 表示初始化成功。

3. 使用log4j2进行日志输出

在代码中加入日志,通过 Logger 的不同方法输出日志。

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class TestLog4j2 {
    private static final Logger logger = LogManager.getLogger(TestLog4j2.class);

    public static void main(String[] args) {
        logger.debug("debug log");
        logger.info("info log");
        logger.warn("warn log");
        logger.error("error log");
        logger.fatal("fatal log");
    }
}

在控制台输出的日志中,日志级别低于 info 的日志不会被输出,可以看到如下输出结果:

2021-07-22 16:38:52 INFO  TestLog4j2:9 - info log
2021-07-22 16:38:52 WARN  TestLog4j2:10 - warn log
2021-07-22 16:38:52 ERROR TestLog4j2:11 - error log
2021-07-22 16:38:52 FATAL TestLog4j2:12 - fatal log

4. 输出到指定文件

除了控制台,我们可以通过配置,在指定的文件中输出日志。配置中已经有一个输出到文件的 Appender,文件名为 rolling.log,存储在当前工程目录下的 logs 文件夹内。每天会自动新建一个以日期为名的日志文件,并且保留20个日志文件。

可以增加一个方法,在输出日志的同时,将日志保存到文件中。

public static void logToFile() {
    for (int i = 0; i < 10; i++) {
        logger.info("log to file " + i);
    }
}

运行 logToFile() 方法,可以看到输出日志的同时,在文件中也保存了日志。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:log4j使用教程详解(怎么使用log4j2) - Python技术站

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

相关文章

  • tomcat单机多实例的实现

    Tomcat单机多实例的实现是在一台物理服务器上配置多个Tomcat实例,每个实例可以有自己的配置文件、发布目录和端口号,以实现对 Web 应用的快速部署和管理。 下面是实现多实例的详细步骤: 1. 安装 Tomcat 首先需要安装Tomcat,可以到官网下载最新版本,并按照提示进行安装,安装过程很简单,不再赘述。 2. 创建实例目录 在 Tomcat 安装…

    Java 2023年6月2日
    00
  • 什么是Java性能调优?

    Java性能调优是指通过调整Java程序运行时的各种参数和调用Java API的方式,来使程序的性能达到最优状态。优化程序可以提高Java程序的吞吐量、响应时间和可扩展性。在进行Java性能调优时,需要了解Java虚拟机(JVM)的工作原理、程序的瓶颈所在以及所使用的工具等。 下面是Java性能调优的完整使用攻略: 1. 确定性能指标 在进行性能调优之前,首…

    Java 2023年5月11日
    00
  • Springboot如何去掉URL后面的jsessionid

    要去掉Spring Boot应用程序中URL后的JSESSIONID,可以在servlet过滤器中进行配置,具体步骤如下: 创建一个过滤器类,并实现javax.servlet.Filter接口。 @Component public class JSessionIdFilter implements Filter { @Override public void…

    Java 2023年5月20日
    00
  • 在JDK和Eclipse下如何编写和运行Java Applet

    Java Applet是一种运行在Web浏览器中的Java程序,它可以提供互动式图形、动画和音频效果。Java Applet可以使用Java语言编写,并在Web浏览器中运行,因此具有跨平台、简单易用等优点。 下面提供在JDK和Eclipse下编写和运行Java Applet的详细攻略。 JDK下编写和运行Java Applet 编写Java Applet代码…

    Java 2023年5月23日
    00
  • IIS和tomcat5多站点配置流程

    针对你提出的问题,“IIS和tomcat5多站点配置流程”的完整攻略,以下是步骤和示例: 1. 配置IIS IIS是Windows操作系统默认带的Web服务器,它可以作为一个反向代理服务器,把所有请求转发到Tomcat服务器。下面介绍如何配置IIS,使其可以代理多个Tomcat站点。 1.1 安装IIS 在Windows服务器上打开“服务器管理器”,选择“添…

    Java 2023年5月19日
    00
  • Java基于控制台界面实现ATM系统

    要实现“Java基于控制台界面实现ATM系统”,可以遵循以下步骤: 1. 设计功能模块 首先,需要明确ATM系统需要的功能模块,包括登录、查询余额、取款、转账、修改密码、退出等模块。可以用流程图或伪代码来描述这些功能模块的实现逻辑。 2. 实现代码 接下来,需要编写Java代码,来实现这些功能模块。可以先搭建好基本框架,然后以模块化的方式,逐步实现各个功能模…

    Java 2023年5月24日
    00
  • Java让泛型实例化的方法

    让泛型实例化有两种方法,分别是类型擦除和传递类型参数。下面将详细讲解这两种方法,并提供相应的示例说明: 1. 类型擦除 Java 中的泛型在编译时会进行类型擦除,将泛型类型参数替换为真正的类型。这意味着我们无法在运行时访问泛型类型参数的信息。但是,我们可以通过以下方式实例化泛型: 示例 1 List<Integer> list = new Arr…

    Java 2023年5月26日
    00
  • Springboot配置返回日期格式化五种方法详解

    Springboot配置返回日期格式化五种方法详解 在Springboot开发中,经常会用到日期格式化,在处理时间日期类型的数据比较麻烦,需要对日期实现格式化。本文将从不同的维度,介绍五种Springboot配置返回日期格式化的方法。 1. 使用@JsonFormat注解实现格式化 使用Spring的@JsonFormat注解来实现日期的格式化输出,它可以放…

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