java如何定义log
在Java中定义和使用日志(log)通常涉及选择日志框架(如java.util.logging、Log4j、SLF4J等),并进行基础配置。以下是几种常见方法的说明:
使用java.util.logging(JUL)
Java标准库内置的日志框架,无需额外依赖。
import java.util.logging.Logger;
public class Example {
// 获取Logger实例(通常以类名命名)
private static final Logger LOGGER = Logger.getLogger(Example.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依赖(如Maven):
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.20.0</version>
</dependency>
代码示例:
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 static void main(String[] args) {
LOGGER.debug("Debug message");
LOGGER.error("Error message");
}
}
使用SLF4J(门面模式)
SLF4J是一个日志门面,允许灵活切换底层实现(如Log4j、Logback)。需添加SLF4J和绑定库(如Logback)的依赖。
Maven依赖示例:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.4.8</version>
</dependency>
代码示例:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Example {
private static final Logger LOGGER = LoggerFactory.getLogger(Example.class);
public static void main(String[] args) {
LOGGER.info("SLF4J with Logback");
LOGGER.warn("Warning message");
}
}
日志级别
常见日志级别(从低到高):
TRACE/FINEST(最详细)DEBUG/FINEINFO/CONFIGWARN/WARNINGERROR/SEVERE
配置文件
对于Log4j或Logback,通常需要配置文件(如log4j2.xml或logback.xml)定义输出格式、级别和目的地(文件/控制台)。示例Logback配置:

<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</configuration>
根据项目需求选择合适的框架,SLF4J+Logback或Log4j 2是当前主流方案。






