Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 存在未被if-PMD冲突包围的日志块_Java_Logging_Pmd - Fatal编程技术网

Java 存在未被if-PMD冲突包围的日志块

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违规-检查代码时,我得到的日志块未被if违规包围。请任何人告诉我如何纠正这一违规行为

此冲突仅在信息级别发生


提前感谢。

此规则无法正常工作。在以后的版本中,它被禁用。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");
  }
}