记录器应该定义为private static final并具有正确的类

时间:2015-06-29 08:50:59

标签: java logging pmd

我有以下的日志代码。

private static final Log LOGGER_MESSAGE = LogFactory.getLog(CandidateDAOImpl.class);

PMD抛出

Logger should be defined private static final and have the correct class

我正在使用私有的最终静态变量,我的文件名是CandidateDAOImpl。

为什么它的表现如此?

1 个答案:

答案 0 :(得分:1)

问题在于您的变量名LOGGER_MESSAGE。 PMD规则 ProperLogger 默认日志名称为LOG。见http://pmd.sourceforge.net/pmd-4.3.0/rules/logging-jakarta-commons.html

但是,它没有正确记录,错误信息很容易引起误解。

将以下内容添加到您的PMD配置文件中应解决问题:

<rule 
  ref="rulesets/java/logging-jakarta-commons.xml/ProperLogger">
    <properties>
        <property name="staticLoggerName" value="LOGGER_MESSAGE"/>
    </properties>
</rule>

同样的想法,如果有人想将'LOG'更改为'log',则需要更新staticLoggerName属性