Java开发进阶之路:在IntelliJ IDEA中搭建Maven项目到Log4j2日志配置,全程实操演示

573 阅读2分钟

本文使用IDEA版本为: IntelliJ IDEA 2024.1 (Community Edition), 操作系统为: Ubuntu 18.04.5 LTS

一、新建项目

打开IDEA, 右上角点击: New Project,填写项目名称,构建工具选择: Maven,点击 Create

新建完毕后,目录结果如下:

二、新增依赖Log4j

1. pom.xml修改

进入log4j官网, 添加 log4j库到 maven 项目: logging.apache.org/log4j/2.x/m…

在 pom.xml 文件中添加下面内容

<dependencies>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.23.1</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.23.1</version>
  </dependency>
</dependencies>

如果使用1.x版本,如下:

<dependencies>
  <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
  </dependency>
</dependencies>

2. 更新项目依赖

右键点击 pom.xml 文件,选择 Maven > Reload project。IDEA会自动下载并添加log4j相关的库到你的项目,如下图:

下载完成后,我们就可以看到项目的External Libraries中新增了pom.xml的两个依赖,如下图:

jar包路径在: ~/.m2/repository/org/apache/logging/log4j/log4j-api/2.23.1/, 默认会在 ~/.m2/repository,如果需要修改, 点击IDEA的 File | Settings | Build, Execution, Deployment | Build Tools | Maven, 如下图:

三、配置log4j

Log4j具有在初始化期间自配置的能力。当Log4j启动时,它将定位所有ConfigurationFactory插件,并按照从从高到低的加权顺序排列它们。交付时,Log4j包含四个ConfigurationFactory实现:一个用于JSON、一个用于YAML、一个用于属性、一个用于XML。

在 src/main/resources 下面创建文件 log4j2.xml,下面配置会输出到控制台

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

我们还需要写到文件,配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <File name="LogFile" fileName="logs/app.log">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="LogFile"/>
        </Root>
    </Loggers>
</Configuration>

详细原理请查看官网: logging.apache.org/log4j/2.x/m…

四、java代码编写

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

public class Main {
    private static final Logger logger = LogManager.getLogger("demo");

    public static void main(String[] args) {
        logger.info("Hello, World!");
    }
}

因为我们使用的是2.x版本,和1.x 导入的包名和代码是不同的,如下图:

具体查看官网: logging.apache.org/log4j/2.x/m…

五、运行并查看日志

1. 运行

选择 Main.java 文件,并点击 Run 按钮

2. 日志查看

参考文章:

1. 自动配置译文

2. log4j官网