Регистратор slf4j не печатает консоль входа для Springboot, если он помещен в log.isDebugEnabled()
Я использую регистратор slf4j в своем классе контроллера, хотя мой application.properties содержит следующие записи:
#logging.level.*= DEBUG
logging.level.org.springframework.web=DEBUG
logging.level.com.ge.power.brs.controllers.*=DEBUG
Код выглядит так:
private static final Logger LOGGER = LoggerFactory.getLogger(EventControllerV1.class);
public ResponseEntity<List<EventView>> requestEvents(@RequestParam("user_name") String userName) throws Exception {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("EventControllerV1:::requestEvents:::Parameters>>::userName::" + userName);
}
return new ResponseEntity<>(eventManager.findEvents(userName), HttpStatus.OK);
}
**
В фоновом режиме slf4j использует каркас Logback, но я все еще не могу получить вывод консоли... но если я удалю условие и использую только log.info("xxx"), я увижу вывод в консоли, когда нажму конечная точка
2 ответа
if(log.isDebugEnabled()){
log.info("xxx") ;
}
Не имеет особого смысла.
вместо этого должно быть
if(log.isDebugEnabled()){
log.debug("xxx") ;
}
И чтобы ответить на ваш оригинальный вопрос,
Это не работает
if(log.isDebugEnabled()){
log.info("xxx") ;
}
и это работает log.info("xxx") ;
тогда это означает, что уровень журнала для этого класса и метода находится на уровне INFO (который выше, чем DEBUG). Попробуйте удалить * из logging.level.com.ge.power.brs.controllers.*=DEBUG
Внутри файла "src/main/resources/application.properties" добавьте это:
logging.level.com.mypackage.name=INFO
Так, например:
logging.level.com.capitalonebank=INFO
Если вы хотите все это, попробуйте
logging.level.com=INFO
Часть.com относится ко всему, что находится внутри src/main/java/com. Так что для моего проекта у меня есть src/main/java/com /capitalonebank