java 如何log
如何在 Java 中进行日志记录
Java 提供了多种日志记录方式,以下是常见的几种方法:
使用 java.util.logging (JUL)
Java 自带的日志框架,无需额外依赖:
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");
logger.severe("This is an error message");
}
}
使用 Log4j 2
Apache Log4j 2 是广泛使用的日志框架:
-
添加 Maven 依赖:
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.17.1</version> </dependency> -
配置文件 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="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 是具体实现:
1. 添加 Maven 依赖:
```xml
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</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");
logger.warn("Warning message");
logger.error("Error message");
}
}
#### 日志级别说明
常见日志级别从低到高:
- TRACE (最详细)
- DEBUG
- INFO
- WARN
- ERROR
- FATAL (最严重)
#### 最佳实践
- 根据应用需求选择合适的日志框架
- 合理配置日志级别,生产环境通常使用 INFO 或 WARN
- 避免在循环中记录大量日志
- 使用参数化日志消息提高性能:
```java
logger.debug("User {} logged in at {}", username, loginTime);
- 为不同包或类配置不同的日志级别
- 定期归档和清理日志文件






