slf4j 如何设置日志输出级别?

java 文章 2023-03-06 21:17 4188 0 全屏看文

AI助手支持GPT4.0

lombok.slf4j 是一个基于Slf4j(Simple Logging Facade for Java)的日志框架,因此其日志输出级别的设置方式与Slf4j相同。


具体来说,可以通过在Slf4j的配置文件中设置日志级别,或者在代码中使用特定的日志级别来控制日志输出级别。以下是具体的操作步骤:


1. 在项目中引入Slf4j依赖


可以在Maven或Gradle中添加依赖,例如:


Maven:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>{version}</version>
</dependency>

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>{version}</version>
</dependency>

Gradle:

compile group: 'org.slf4j', name: 'slf4j-api', version: '{version}'
compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '{version}'


其中,slf4j-api是Slf4j的基础依赖,slf4j-log4j12是一个Slf4j的实现,使用log4j作为底层日志框架。


2. 配置Slf4j


在项目中需要配置Slf4j,可以通过在classpath下添加一个名为log4j.properties的文件来配置,也可以通过Java系统属性来配置。


在log4j.properties文件中,可以设置各个日志级别的输出方式和输出目标:

# 将所有的日志输出到控制台
log4j.rootLogger=DEBUG, stdout

# 控制台输出配置
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} %c{1}:%L - %m%n

# 设置某个包下的日志级别为INFO
log4j.logger.com.mycompany=INFO


上述配置中,rootLogger的输出级别为DEBUG,表示将所有的日志输出到控制台上;然后通过appender指定了控制台的输出方式和输出格式;最后用logger来指定某个包下的日志级别为INFO。


3. 在代码中使用


在代码中使用Slf4j提供的Logger接口来输出日志,例如:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyClass {
    private static final Logger LOGGER = LoggerFactory.getLogger(MyClass.class);

    public void myMethod() {
        LOGGER.debug("Debug message");
        LOGGER.info("Info message");
        LOGGER.warn("Warn message");
        LOGGER.error("Error message");
    }
}


上述代码中,通过LoggerFactory来获取Logger对象,然后可以使用debug、info、warn、error等方法来输出不同级别的日志。注意,日志输出级别由配置文件决定,如果设置为DEBUG,则所有级别的日志都会输出,否则只会输出指定级别及以上的日志。


-EOF-

AI助手支持GPT4.0