java如何加log
在Java中添加日志记录可以通过多种方式实现,以下是几种常见的方法:
使用java.util.logging(JUL)
Java自带的日志框架java.util.logging无需引入额外依赖,适合简单场景。
import java.util.logging.Logger;
public class Example {
private static final Logger LOGGER = Logger.getLogger(Example.class.getName());
public void demo() {
LOGGER.info("This is an info message");
LOGGER.warning("This is a warning 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} [%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 Example {
private static final Logger LOGGER = LogManager.getLogger(Example.class);
public void demo() {
LOGGER.info("Log4j2 info message");
LOGGER.error("Log4j2 error message");
}
}
使用SLF4J + Logback
SLF4J是日志门面,Logback是具体实现,组合使用更灵活。
Maven依赖:
<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示例:
<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 Example {
private static final Logger LOGGER = LoggerFactory.getLogger(Example.class);
public void demo() {
LOGGER.debug("SLF4J debug message");
LOGGER.warn("SLF4J warn message");
}
}
使用Lombok简化
通过Lombok的@Slf4j注解自动生成日志对象,减少样板代码。
Maven依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
代码示例:
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class Example {
public void demo() {
log.info("Lombok log message");
}
}
日志级别说明
常见日志级别从低到高:

TRACE:最详细的调试信息DEBUG:调试信息INFO:常规运行信息WARN:警告信息ERROR:错误信息FATAL:严重错误
根据需求选择合适的日志框架和级别,避免过度记录影响性能。生产环境建议使用INFO及以上级别。






