这个陈述有什么问题?

时间:2016-02-03 06:48:52

标签: java logging

我的一位大四学生告诉我,编写两个级别的日志语句debuginfo是错误的,这种方法有什么问题?

if(LOGGER.isDebugEnabled()){
    LOGGER.info("REST SERVICE LOG :QUERY GENERATED FOR ADVANCED SEARCH IS : \n" +queryBuffer );
}
if(LOGGER.isEnabledFor(Level.INFO)){
    LOGGER.info("REST SERVICE LOG :QUERY GENERATED FOR ADVANCED SEARCH IS : \n" +queryBuffer );
}

对此有任何建议吗?

1 个答案:

答案 0 :(得分:1)

在您的示例中:(假设您的LOGGER正在使用标准java日志框架之一)

如果为TRACE或DEBUG配置了LOGGER,则会记录两次相同的信息。

"REST SERVICE LOG :QUERY GENERATED FOR ADVANCED SEARCH IS : 
<query buffer>"
"REST SERVICE LOG :QUERY GENERATED FOR ADVANCED SEARCH IS : 
<query buffer>"

这似乎很浪费。

如果为INFO配置了LOGGER,则会记录一次信息。

"REST SERVICE LOG :QUERY GENERATED FOR ADVANCED SEARCH IS : 
<query buffer>"

如果LOGGER配置为ERROR或FATAL等级别,则不会记录任何信息。

您在这里登录的目标是什么?