Регистратор 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

Другие вопросы по тегам