【问题标题】:How to activate spring's internal logging in a Spring application, which is not a Spring Boot application如何在不是 Spring Boot 应用程序的 Spring 应用程序中激活 Spring 的内部日志记录
【发布时间】:2019-02-11 14:53:52
【问题描述】:

在我看到的spring源码中:

boolean debug = logger.isDebugEnabled();

我应该怎么做才能使debug为真?

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

【问题讨论】:

标签: spring logging log4j


【解决方案1】:

在 springboot 2.1.9.RELEASE 上测试

  1. 直接在配置文件application.yml中设置root日志级别
logging:
  level:
    root: trace
  1. 在maven项目的resources目录下创建文件“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" in config 会输出很多有用的调试日志,比如

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=info in application.properties

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 2019-05-11
    • 2020-12-01
    • 1970-01-01
    相关资源
    最近更新 更多