我建议我的一位朋友不要添加单一if条件的记录器。如果if子句后面有多行,那么它将被视为声纳关键问题
以下是错误的使用
Ex :(单个if子句 - 声纳关键问题):只有第一行会有条件地执行。其余的将无条件执行。
//Some Code
if(logger.isInfoEnabled())
logger.info("Entering " + CLASS_NAME + " Method : generateGSTR2PreviewPDF");
//Some Code
所以我建议他们采用两种方法,请建议任何更好的方法仍然存在,我建议。
我建议的方法如下所示
第一个是
方法1 :(添加鲜花支架):
//Some Code
if(logger.isInfoEnabled()){
logger.info("Entering " + CLASS_NAME + " Method : generateGSTR2PreviewPDF");
}
//Some Code
,第二个是
方法2 :(通过单独的方法隔离):
//Some Code
addLogger("Entering " + CLASS_NAME + " Method : generateGSTR2PreviewPDF");
//Some Code
请告知除了这两种方法之外还有更好的方法。
答案 0 :(得分:0)
第一个if {}
。
完成guard(if语句)以防止太多工作(在INFO级别禁用日志记录时),优化(此处为字符串连接,也可能是toString调用)。调用函数会否定此优化。
事实上,不是第二种情况,你可以放弃整个if-guard,只需拨打logger.info
。
在上面的例子中,我可能就是这么做的。