如果包装在log.isDebugEnabled()

时间:2016-11-12 00:34:18

标签: java spring logging spring-boot slf4j

我在我的控制器类中使用slf4j logger,即使我的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(&#34; xxx&#34;),我可以看到我点击端点时控制台中的输出

2 个答案:

答案 0 :(得分:1)

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

中删除*

答案 1 :(得分:1)

在“ 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