2011-12-10 4 views
2

Checkstyleの "Multiple String Literals"ルールをトリガーするログステートメントを停止したいと思います。つまり、クラス内の複数のログステートメントで文字列が繰り返される場合、Checkstyleはそれを無視する必要があります。Checkstyleからログステートメントを除外することはできますか?

logステートメントの周りに十数個の//CHECKSTYLE:OFF/ONコマンドでコードを捨てるつもりはありませんが、わたしが知る限り、適切な設定オプション(ignoreStringsRegexpとignoreContextOccurence)をこの目的に使用することはできません。

+1

AFAIKは、あなたが望んでいなければ、あなたのプロジェクトのチェックを完全にオフにすることができますが、残念なことにログステートメントだけでは機能しません。私は通常、繰り返されるテキストの文字列定数を作成することによって、このようなエラーを回避します。 – aishwarya

+0

@aishwaryaええ、それは私が避けようとしていることです。私はコードを捨てる魔法の値を避けるのに便利だから、複数の文字列リテラルの他のインスタンスのためにそれを維持したいが、定数へのログテキストを抽出することは悪いようだ。なぜなら、ロギングは一般的に別個の懸念事項であり、テキストをクラス定数にプッシュすることは、クラスを汚染するように思えるからです。 – GaryF

答えて

2

残念ながら、それは不可能です。あなたが本当に求めているのは、1つの小切手の行動の修正です。このようなことを実装する標準的な方法は、独自のcustom checkを実装することです。 (もう1つの方法はfilterを実装することですが、私はあなたのケースでは、フィルタではなくチェックが必要だと思います)

+0

実際、この種の問題のためにcheckstyle設定からいくつかのルールを無効にしました。これは私の例外的な状況をカバーしていません。カスタムチェックを書いてテストするのは簡単に1日か2日かかりますので、価値がないかもしれません... –

関連する問題