public class HomeController {
@Autowired
TaskItemService taskItemService;
Logger logger = LoggerFactory.getLogger(HomeController.class);
@GetMapping("/")
public ModelAndView index() {
ModelAndView modelAndView = new ModelAndView("index");
modelAndView.addObject("tasks", taskItemService.getAllTasks());
logger.info("index page returned");
return modelAndView;
}
}
期待日志但没有在控制台上获取它。
我会采取一些步骤来添加
@RestController
注释并首先明确指定端点的名称。根据您的代码进行了一些修改,获得 ModelAndView
的端点将改为 http://[LOCAL_HOST]:[PORT]/[BASE_URL]/home/index
。然后我会尝试向附加调试器的端点发出获取请求,以查看记录器是否被命中。
指定自定义 url 并附加调试器的原因是为了 100% 确保您的代码以预期的方式工作。
@RestController
@RequestMapping("/home")
public class HomeController {
@Autowired
TaskItemService taskItemService;
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@GetMapping("/index")
public ModelAndView index() {
ModelAndView modelAndView = new ModelAndView("index");
modelAndView.addObject("tasks", taskItemService.getAllTasks());
logger.info("index page returned");
return modelAndView;
}
}
请仔细检查这些步骤。
日志记录级别可能设置不正确。如果日志记录级别设置为高于“info”的级别,则不会打印代码中的 logger 语句。要检查日志记录级别,您可以查找日志记录配置文件
(e.g., logback.xml, log4j.properties)
并确保根记录器级别设置为“信息”或更低。
记录器可能配置不正确。如果记录器配置不正确,它可能不会将日志语句打印到控制台。您可以通过确保将记录器实现添加为依赖项以及配置文件存在并正确配置来检查记录器是否已正确配置。
代码可能没有被执行:有可能包含logger语句的代码没有被执行,这种情况下log语句不会被打印出来。您可以通过添加断点或打印语句来检查是否正在调用包含记录器语句的方法。
如果这不起作用,请改用此方法。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static Logger LOGGER = LoggerFactory.getLogger(MovieControllerTest.class);