SpringBoot如何设置不输出Info日志

本篇文章将带您了解如何在SpringBoot项目中关闭Info级别日志输出。

一、为什么要关闭Info日志

在开发中,我们经常会使用Log4j、Logback等框架来输出日志信息,而默认情况下SpringBoot会输出一些Info级别的日志,这些日志信息通常用于调试,但有时候它们会占据大量的控制台输出以及日志文件,严重影响正常的日志查看。

例如,当我们使用SpringBoot开发Restful API时,请求信息、响应信息等都会被默认输出到日志中,伴随着每个接口请求的输出,日志会变得张冠李戴,不利于调试分析。

二、如何设置不输出Info级别日志

1、使用properties方式设置

我们可以在项目的 application.properties 文件中设置logging.level.root=ERROR,这意味着SpringBoot将不会输出Level.INFO的日志信息。

application.properties 配置示例:
logging.level.root=ERROR

2、使用yml方式设置

同样的,我们也可以使用yml文件方式设置logging.level.root。

application.yml 配置示例:
logging:
  level:
    root: ERROR

3、使用代码方式设置

除了以上两种方式之外,我们还可以通过编写代码的方式,来设置日志级别。

代码示例:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Configuration
public class LogConfiguration {

    private static final Logger logger = LoggerFactory.getLogger(LogConfiguration.class);

    @PostConstruct
    public void init() {
        logger.info("init LogConfiguration");
        ch.qos.logback.classic.Logger rootLogger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME);
        rootLogger.setLevel(Level.ERROR);
    }
}

这个例子中,我们通过 LogConfiguration 类实现了一个初始化的方法init(),在这个方法中我们获得了 ROOT_LOGGER_NAME 的实例并调整了日志级别到 ERROR。

三、如何判断是否设置成功

当我们在项目中添加了相应的配置之后,如何判断是否设置成功呢?

我们可以在控制台中查看运行时的日志信息,如果控制台上不再输出频繁的Info级别日志信息,那么就证明我们已经成功关闭了Info级别日志输出。

另外,我们还可以在调试日志的时候,通过打印当前 LoggingSystem 的状态,来确认我们的日志配置是否生效。

代码示例:
@Component
public class CheckLoggingLevelCommandLineRunner implements CommandLineRunner {

    @Autowired
    private LoggingSystem loggingSystem;

    @Override
    public void run(String... args) throws Exception {
        LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
        for (Logger logger : loggerContext.getLoggerList()) {
            System.out.println("logger.getName(): " + logger.getName() + ", logger.getLevel(): " + logger.getLevel());
        }
        loggingSystem.setLogLevel("root", LogLevel.ERROR);
    }
}

当我们在终端启动项目并运行上述代码,如果输出信息中logger.getLevel()的值为 ERROR,则证明我们的配置已生效。

四、小结

以上就是SpringBoot如何设置不输出Info级别日志的全部内容,我们可以通过在 properties、yml 文件中进行配置,或者通过代码动态设置等多种方式,来实现相应的功能。

本文链接:https://my.lmcjl.com/post/8283.html

展开阅读全文

4 评论

留下您的评论.