日志记录在 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
问题变成了三方面:
- 正确地,正如@Sanjay 所建议的,我需要指定实际的包,而不是假设更高级别的包会被过滤掉。这允许我记录级别
info
但不是级别 debug
- 我实际上并没有使用 application.properties。我有一个正在加载属性文件的 Spring
@Configuration
class, 即时 。它实际上需要在 spring 检测到 application.properties
- 我使用的是 JULI,因为 SLF4J 实际上是在 Spring Boot 中使用 Logback 实现的。
我有一个试图用来记录的拦截器:
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
问题变成了三方面:
- 正确地,正如@Sanjay 所建议的,我需要指定实际的包,而不是假设更高级别的包会被过滤掉。这允许我记录级别
info
但不是级别debug
- 我实际上并没有使用 application.properties。我有一个正在加载属性文件的 Spring
@Configuration
class, 即时 。它实际上需要在 spring 检测到 application.properties - 我使用的是 JULI,因为 SLF4J 实际上是在 Spring Boot 中使用 Logback 实现的。