日志记录在 Spring 启动时不起作用 (Gradle)

Logging not working in Spring Boot (Gradle)

我有一个试图用来记录的拦截器:

package com.noxgroup.nitro.security;
...

导入组织slf4j.Logger; 导入组织。slf4j.Logger工厂;

@Component
public class SecurityInterceptor implements HandlerInterceptor {

private static final Logger log = LoggerFactory.getLogger(SecurityInterceptor.class);

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handlingObject) throws Exception {
        log.debug("Interceptor firing...");
    }
}

所以我这样配置application.properties:

debug=true
logging.level.org.springframework.web=DEBUG
logging.level.com.noxgroup.nitro=DEBUG
logging.level.com.noxgroup.nitro.security=DEBUG

但运气不佳。控制台中没有任何内容。 System.out.println 确实有效。

注意: 我正在使用 spring-boot-starter-web,我的印象是其中包含 Apache Commons Logging 的实现...

编辑: 我可以记录 info,但 debug 没有记录。

您是否尝试将自己的包的级别设置为 DEBUG,即

logging.level.com.noxgroup.nitro.security=DEBUG

要运行每次以DEBUG模式登录,也可以试试

logging.level.=DEBUG

问题变成了三方面:

  1. 正确地,正如@Sanjay 所建议的,我需要指定实际的包,而不是假设更高级别的包会被过滤掉。这允许我记录级别 info 但不是级别 debug
  2. 我实际上并没有使用 application.properties。我有一个正在加载属性文件的 Spring @Configuration class, 即时 。它实际上需要在 spring 检测到 application.properties
  3. 我使用的是 JULI,因为 SLF4J 实际上是在 Spring Boot 中使用 Logback 实现的。