我使用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的官方文档并没有告诉我如何获得我想要的记录器实例。我怎样才能做到这一点?我的代码有问题,或者我在配置中遗漏了什么?
答案 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 是您应用程序的根目录