Checkstyle 输出大量调试语句

Checkstyle outputting a lot of debug statements

我不知道是什么原因造成的。

似乎没有对配置文件进行任何更改,但肯定有所不同,因为它过去不会输出如下内容:

...
11 Jan 2017 15:30:46,889 [DEBUG] (AbstractConverter.java:convert:158)     Converted to Byte value '0'
11 Jan 2017 15:30:46,889 [DEBUG] (AbstractConverter.java:setDefaultValue:336) Setting default value:  
11 Jan 2017 15:30:46,889 [DEBUG] (AbstractConverter.java:convert:127) Converting 'Character' value ' ' to type 'Character'
11 Jan 2017 15:30:46,889 [DEBUG] (AbstractConverter.java:convert:149)     No conversion required, value is already a Character
11 Jan 2017 15:30:46,889 [DEBUG] (AbstractConverter.java:setDefaultValue:336) Setting default value: 0
11 Jan 2017 15:30:46,889 [DEBUG] (AbstractConverter.java:convert:127) Converting 'Integer' value '0' to type 'Double'
11 Jan 2017 15:30:46,889 [DEBUG] (AbstractConverter.java:convert:158)     Converted to Double value '0.0'
11 Jan 2017 15:30:46,889 [DEBUG] (AbstractConverter.java:setDefaultValue:336) Setting default value: 0
11 Jan 2017 15:30:46,889 [DEBUG] (AbstractConverter.java:convert:127) Converting 'Integer' value '0' to type 'Float'
11 Jan 2017 15:30:46,889 [DEBUG] (AbstractConverter.java:convert:158)     Converted to Float value '0.0'
11 Jan 2017 15:30:46,889 [DEBUG] (AbstractConverter.java:setDefaultValue:336) Setting default value: 0
11 Jan 2017 15:30:46,889 [DEBUG] (AbstractConverter.java:convert:127) Converting 'Integer' value '0' to type 'Integer'
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:convert:149)     No conversion required, value is already a Integer
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:setDefaultValue:336) Setting default value: 0
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:convert:127) Converting 'Integer' value '0' to type 'Long'
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:convert:158)     Converted to Long value '0'
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:setDefaultValue:336) Setting default value: 0
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:convert:127) Converting 'Integer' value '0' to type 'Short'
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:convert:158)     Converted to Short value '0'
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:setDefaultValue:336) Setting default value: 0.0
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:convert:127) Converting 'BigDecimal' value '0.0' to type 'BigDecimal'
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:convert:149)     No conversion required, value is already a BigDecimal
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:setDefaultValue:336) Setting default value: 0
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:convert:127) Converting 'BigInteger' value '0' to type 'BigInteger'
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:convert:149)     No conversion required, value is already a BigInteger
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:setDefaultValue:336) Setting default value: false
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:convert:127) Converting 'Boolean' value 'false' to type 'Boolean'
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:convert:149)     No conversion required, value is already a Boolean
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:setDefaultValue:336) Setting default value: 0
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:convert:127) Converting 'Integer' value '0' to type 'Byte'
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:convert:158)     Converted to Byte value '0'
11 Jan 2017 15:30:46,890 [DEBUG] (AbstractConverter.java:setDefaultValue:336) Setting default value:  
11 Jan 2017 15:30:46,891 [DEBUG] (AbstractConverter.java:convert:127) Converting 'Character' value ' ' to type 'Character'
11 Jan 2017 15:30:46,891 [DEBUG] (AbstractConverter.java:convert:149)     No conversion required, value is already a Character
11 Jan 2017 15:30:46,891 [DEBUG] (AbstractConverter.java:setDefaultValue:336) Setting default value: 0
11 Jan 2017 15:30:46,891 [DEBUG] (AbstractConverter.java:convert:127) Converting 'Integer' value '0' to type 'Double'
11 Jan 2017 15:30:46,891 [DEBUG] (AbstractConverter.java:convert:158)     Converted to Double value '0.0'
11 Jan 2017 15:30:46,891 [DEBUG] (AbstractConverter.java:setDefaultValue:336) Setting default value: 0
11 Jan 2017 15:30:46,891 [DEBUG] (AbstractConverter.java:convert:127) Converting 'Integer' value '0' to type 'Float'
11 Jan 2017 15:30:46,891 [DEBUG] (AbstractConverter.java:convert:158)     Converted to Float value '0.0'
11 Jan 2017 15:30:46,891 [DEBUG] (AbstractConverter.java:setDefaultValue:336) Setting default value: 0
11 Jan 2017 15:30:46,891 [DEBUG] (AbstractConverter.java:convert:127) Converting 'Integer' value '0' to type 'Integer'
...

用谷歌搜索它什么也没有。一定有什么改变了,但我没有运气找到什么,或者找出是什么控制了这种行为。有人可以告诉我通常在哪里可以找到配置吗?

编辑:查看 BeanUtils 后,我发现了这段源代码:https://commons.apache.org/proper/commons-beanutils/apidocs/src-html/org/apache/commons/beanutils/converters/AbstractConverter.html

我在其中找到了所有输出语句,并被以下内容包围:

if (log().isDebugEnabled()) {
    log().debug(...
}

显然这个 return true。我不明白这怎么可能。现在我需要了解如何关闭它。

我正在使用 Play Framework,它使用了 logback。没有 log4j 属性文件。

编辑:为此开始悬赏,因为我在任何地方都找不到解决方案真的很烦人。 google 给我的要么是源代码,要么是其他人的日志。我试过在 logback 配置中关闭名称空间和 类 但这没有用。我已经尝试将所有内容设置为 ERROR 和 OFF,但这也不起作用。我没有想法,而且我在任何地方都找不到解决方案的事实真的很烦人。任何帮助将不胜感激。

编辑:构建工具是 play,它是 sbt 的包装器。 checkstyle 的配置是这样完成的:https://github.com/ymasory/play-pmd-checkstyle/blob/master/project/Build.scala

使用与示例脚本中完全相同的命令行选项。也在 Build.scala 文件中。

然后你 运行 play checkstyle 然后输出它。

checkstyle 的配置 XML 如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">

<module name="Checker">
  <property name="severity" value="warning"/>
  <module name="SuppressionFilter">
    <property name="file" value="project/suppressions.xml"/>
  </module>
  <module name="TreeWalker">
    <module name="JavadocMethod">
      <property name="suppressLoadErrors" value="true"/>
    </module>
    <module name="JavadocType"/>
    <module name="JavadocVariable"/>
    <module name="JavadocStyle"/>
    <module name="ConstantName"/>

还有更多的模块,直到文件结束。

如果您在 Checkstyle 中设置 -d--debug 选项,这将导致 JDK 日志级别 FINEST 进而将被解释为 "debug enabled" 作者 Beanutils。

您应该可以使用 log4j.xml 文件设置日志级别。如果您在此处看到文档 here , you will notice that the play framework uses SLF4J as its default logger. This means it should be able to be configured in the exact same way as you would log4j.properties.If you read the documentation,您应该可以通过执行以下操作来抑制它:

log4j.rootLogger=ERROR, stdout
<PACKAGE>.checkstyle=WARN

替换为您要替换的包。因此,例如,如果您试图抑制 java.lang.String 您将替换为 java.lang