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违规时 - 检查代码我正在如果违规则没有包围日志块。请你告诉我如何解决这个违规问题。
此违规仅适用于信息级别。
提前致谢。
答案 0 :(得分:2)
此规则无法正常运行。在以后的版本中,它被禁用了。 PMD(5.1.1)的最新版本有一个名为GuardLogStatementJavaUtil的规则,该规则执行相同的操作,但该工作正常。
更新:
我尝试过使用以下代码:
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");
}
}
运行PMD后,我收到两条警告信息:
1)在log.info("jebediah");
行,我收到以下错误消息: Java Logging - > GuardLogStatementJavaUtil 强>
2)在logger.info("kerman");
行,我收到以下错误消息: Jakarta Commons Logging - > GuardLogStatement 强>
看起来无论我做什么,我都会收到警告。
答案 1 :(得分:0)
将信息日志更改为调试并开始通过。
答案 2 :(得分:0)
您可以添加
@SuppressWarnings("PMD.GuardLogStatementJavaUtil")
private void sample() {
if (logger.isInfoEnabled()) {
logger.info("sample log");
}
}
有关禁用此警告的方法。
用法示例:
id