📜  输出到控制台 log4j2 (1)

📅  最后修改于: 2023-12-03 15:41:54.017000             🧑  作者: Mango

输出到控制台 log4j2

当你的 java 程序输出了很多有用的信息时,你可能想要将这些信息记录下来以备将来参考和调试。log4j2 是一个流行的 Java 日志记录框架,它允许你将日志信息记录到文件、数据库、网络甚至控制台中。

在本文中,我们将主要关注将日志信息输出到控制台的方式,这将使你能够直接在开发环境中查看和分析日志。

版本要求

使用 log4j2 输出日志需要以下版本要求:

  • log4j-api-2.0-beta9.jar
  • log4j-core-2.0-beta9.jar
输出日志到控制台

log4j2 提供控制台输出日志的功能非常容易,只需通过配置文件来指定即可。

首先,让我们创建一个简单的 Java 程序来演示如何使用 log4j2。

package com.example.app;

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

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

    public static void main(String[] args) {
        logger.info("程序已启动");
        logger.debug("开始处理数据");
        logger.warn("未找到配置文件");
        logger.error("发生未处理异常");
        logger.fatal("无法启动程序");
    }
}

上面的代码定义了一个简单的 MyApp 类,用于执行一些操作,并使用 log4j2 记录日志。我们可以看到,对于不同的日志级别,我们选择不同的方法来记录日志信息。

接下来,让我们创建一个名为 log4j2.xml 的配置文件,将日志输出到控制台。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info">
    <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="debug">
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>

使用上述配置文件,我们定义了一个控制台 appender,称为“Console”。我们使用 <PatternLayout> 来设置控制台日志输出的格式,例如:

  • %d{HH:mm:ss.SSS}: 输出日志信息的时间戳。
  • [%t]: 输出线程名称。
  • %-5level: 输出日志的级别。
  • %logger{36}: 输出日志信息的类名。
  • %msg%n: 输出日志的消息和一个 new line 字符。

最后,我们将 appender 关联到根 logger(root logger)上。在根 logger 中,我们可以设置日志记录的级别为“debug”。

当我们运行上述程序时,会看到类似下面的输出:

16:01:16.634 [main] INFO  com.example.app.MyApp - 程序已启动
16:01:16.643 [main] DEBUG com.example.app.MyApp - 开始处理数据
16:01:16.645 [main] WARN  com.example.app.MyApp - 未找到配置文件
16:01:16.646 [main] ERROR com.example.app.MyApp - 发生未处理异常
16:01:16.646 [main] FATAL com.example.app.MyApp - 无法启动程序

以上是使用 log4j2 输出日志到控制台的基本示例。你可以根据自己的需求,进行更多自定义配置,例如使用其他 appender 或设置特定的日志级别等。

参考文献