Spring启动记录器不记录任何内容

时间:2017-11-27 04:12:01

标签: spring-boot logging

我使用Spring Boot(1.5.8.RELEASE)创建了一个Spring MVC项目。我选择了web,jpa和mysql,并且在build.gradle中没有添加任何内容。

以下是我application.yml的相关部分:

logging:
  level: trace

关于日志记录的所有配置。我只想让日志消息显示在控制台中,所以我只省略了logging.path

我有控制器

package com.example.controllers;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
// other imports ...

@RestController
@RequestMapping("/")
public class DummyController {

  private static final Logger LOGGER = 
    LoggerFactory.getLogger(DummyController.class);

  @GetMapping
  public void foo() {
    LOGGER.info("foo");
  }
}

当我向/发送请求时,我收到200 OK响应,但日志中没有任何内容。奇怪的是,Spring框架和Hibernate的日志消息确实出现在控制台中。只是我的特殊日志消息丢失了。

然后我调试了我的代码,发现LOGGER的祖先(记录树的根)是一个日志级别为INFO的记录器。那显然不是我配置的记录器。但是,Spring的官方文档并没有告诉我如何获得我想要的记录器实例。我怎样才能做到这一点?我的代码有问题,或者我在配置中遗漏了什么?

2 个答案:

答案 0 :(得分:2)

official documentation很简单,可以使用logging.level.root配置根记录器。但实际上,您可以单独为每个包/类配置日志记录

logging.level.root=TRACE                     # default for everything
logging.level.com.example.controllers=TRACE  # for your controllers package

类似的application.yml:

logging:
 level:
   root: TRACE 
   com.example.controllers: TRACE 

答案 1 :(得分:0)

如果你看看下面的链接 http://www.slf4j.org/api/org/apache/log4j/Level.html

TRACE 级别低于 INFO,并且您正在尝试记录信息,因此您无法看到日志

logging.level.com.abc.app=DEBUG

其中 com.abc.app 是您应用程序的根目录