java 如何记录日志
Java 日志记录方法
Java 提供了多种日志记录框架,以下是常用的几种方法:
使用 java.util.logging (JUL)
JUL 是 Java 自带的日志框架,无需额外依赖。
初始化 Logger 并记录日志:
import java.util.logging.Logger;
public class Main {
private static final Logger logger = Logger.getLogger(Main.class.getName());
public static void main(String[] args) {
logger.info("This is an info message");
logger.warning("This is a warning message");
}
}
使用 Log4j 2
Log4j 2 是流行的第三方日志框架,性能优于 Log4j 1.x。
添加 Maven 依赖:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.20.0</version>
</dependency>
配置文件 log4j2.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<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="info">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
代码示例:
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class Main {
private static final Logger logger = LogManager.getLogger(Main.class);
public static void main(String[] args) {
logger.info("This is an info message");
logger.error("This is an error message");
}
}
使用 SLF4J + Logback
SLF4J 是日志门面,Logback 是实现。
添加 Maven 依赖:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.4.7</version>
</dependency>
配置文件 logback.xml:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
代码示例:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Main {
private static final Logger logger = LoggerFactory.getLogger(Main.class);
public static void main(String[] args) {
logger.debug("Debug message");
logger.info("Info message");
}
}
日志级别说明
不同日志框架的级别名称可能略有差异,但通常包含以下级别(从低到高):
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
日志最佳实践
选择合适的日志级别,避免过度记录 DEBUG 或 TRACE 级别日志。
日志消息应包含足够上下文信息,便于问题排查。
敏感信息如密码、密钥不应记录在日志中。
考虑使用异步日志记录提高性能。







