本篇文章将带您了解如何在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 评论