📅  最后修改于: 2023-12-03 15:41:54.017000             🧑  作者: Mango
当你的 java 程序输出了很多有用的信息时,你可能想要将这些信息记录下来以备将来参考和调试。log4j2 是一个流行的 Java 日志记录框架,它允许你将日志信息记录到文件、数据库、网络甚至控制台中。
在本文中,我们将主要关注将日志信息输出到控制台的方式,这将使你能够直接在开发环境中查看和分析日志。
使用 log4j2 输出日志需要以下版本要求:
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 或设置特定的日志级别等。