java如何使用日志
日志框架选择
Java生态中常用的日志框架包括Log4j、Logback和java.util.logging(JUL)。推荐使用SLF4J作为日志门面,搭配Logback或Log4j2实现,以获得更好的性能和灵活性。
添加依赖
对于Maven项目,在pom.xml中添加以下依赖(以SLF4J + Logback为例):
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.32</version>
</dependency>
配置日志文件
创建logback.xml配置文件并放置在src/main/resources目录下:
<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="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
代码中使用日志
在Java类中通过SLF4J接口记录日志:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyClass {
private static final Logger logger = LoggerFactory.getLogger(MyClass.class);
public void doSomething() {
logger.debug("Debug message");
logger.info("Info message");
logger.warn("Warning message");
logger.error("Error message", new Exception("Sample error"));
}
}
日志级别控制
Logback支持以下日志级别(从低到高):
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
可通过配置文件动态调整级别,例如设置特定包的日志级别:

<logger name="com.example" level="DEBUG"/>
日志文件输出
添加文件滚动策略到logback.xml:
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/app.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
日志格式自定义
日志模式中的常用占位符:
%d:日期时间%thread:线程名%-5level:左对齐的日志级别%logger:日志记录器名称%msg:日志消息%n:换行符
异常日志记录
推荐使用带有异常参数的日志方法:
try {
// 业务代码
} catch (Exception e) {
logger.error("Error occurred while processing", e);
}






