Java 存在未被if-PMD冲突包围的日志块
在运行PMD违规-检查代码时,我得到的日志块未被if违规包围。请任何人告诉我如何纠正这一违规行为 此冲突仅在信息级别发生Java 存在未被if-PMD冲突包围的日志块,java,logging,pmd,Java,Logging,Pmd,在运行PMD违规-检查代码时,我得到的日志块未被if违规包围。请任何人告诉我如何纠正这一违规行为 此冲突仅在信息级别发生 提前感谢。此规则无法正常工作。在以后的版本中,它被禁用。PMD的最新版本(5.1.1)有一个名为的规则,它做同样的事情,但该规则有效 更新: 我已尝试使用以下代码: package com; import org.apache.log4j.Logger; public class LoggerTest { private static final Logger logge
提前感谢。此规则无法正常工作。在以后的版本中,它被禁用。PMD的最新版本(5.1.1)有一个名为的规则,它做同样的事情,但该规则有效 更新: 我已尝试使用以下代码:
package com;
import org.apache.log4j.Logger;
public class LoggerTest {
private static final Logger logger = Logger.getLogger(LoggerTest.class);
public static void main(String arg[]) {
if (logger.isDebugEnabled()) {
logger.debug("debug");
}
if (logger.isInfoEnabled()) {
logger.info("info");
}
}
}
运行PMD后,我收到两条警告消息:
1) 在log.info(“jebediah”)行代码>我收到以下错误消息:Java日志->GuardLogStatementJavaUtil
2) 在行logger.info(“kerman”)代码>我收到以下错误消息:Jakarta Commons Logging->GuardLogStatement
看起来无论我做什么,我都会得到一个警告。将信息日志更改为调试,它开始通过。您可以添加
private static final Log log = LogFactoryImpl.getLog("apache.commons.logger");
private static final Logger logger = Logger.getLogger("java.util.logger");
public static void main(String[] args) {
if (log.isInfoEnabled()) {
log.info("jebediah");
}
if (logger.isLoggable(Level.INFO)) {
logger.info("kerman");
}
}
在您的方法上禁用此警告
用法示例:
@SuppressWarnings("PMD.GuardLogStatementJavaUtil")
不确定,但尝试在logger.info(“info”)周围添加{}
代码>explicitly@JigarJoshi-谢谢你的回复。但即使是我也受到了同样的违规行为。我已经尝试过了。你能发布准确的错误/警告消息吗please@JigarJoshi-警告为“存在未被if包围的日志块”您确定这是类并且它在提供给pmd之前反映了更改吗?在使用isLoggable方法时,我得到了相同的信息级别冲突。如果(log.isLoggable(java.util.logging.Level.INFO)){log.INFO(“完成”);}我更新了我的答案。我猜PMD无法识别我正在使用的记录器,因此它无论如何都会发出警告。
@SuppressWarnings("PMD.GuardLogStatementJavaUtil")
private void sample() {
if (logger.isInfoEnabled()) {
logger.info("sample log");
}
}