首页 > 解决方案 > 如何在不是 Spring Boot 应用程序的 Spring 应用程序中激活 Spring 的内部日志记录

问题描述

在spring源代码中我看到:

boolean debug = logger.isDebugEnabled();

我该怎么做才能debug实现?

使用 Spring Boot,如果我添加属性logging.level.root=DEBUG,它就可以工作。但不是在春天。

标签: springlogginglog4j

解决方案


在 springboot 2.1.9.RELEASE 上测试

  1. 直接在配置文件中设置根日志级别application.yml
logging:
  level:
    root: trace
  1. 在 maven 项目的资源目录下创建文件“logback.xml”。
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true" scan="false" scanPeriod="1 seconds">
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d [%thread] %-5level %logger{36} [%file : %line] - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="trace">
        <appender-ref ref="stdout"/>
    </root>
</configuration>

debug="true"在配置中会输出很多有用的调试日志,比如

10:02:15,511 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/C:/Users/win/proj/my_web/manage/target/classes/logback.xml]
10:02:15,909 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to TRACE
10:02:15,909 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [stdout] to Logger[ROOT]

如果你看到下面的输出,这意味着你在Propagating某个地方有配置日志级别,比如logging.level.root=infoapplication.properties

10:02:17,026 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@495b0487 - Propagating INFO level on Logger[ROOT] onto the JUL framework

推荐阅读