私のコードベースでAPI(私の場合はjava.util.Logging)へのすべての呼び出しをコメントアウトしたいと思います。簡単にこれを実現する良いライブラリがありますか? 私はEclipse ASTParserを試しましたが、Eclipseに縛られています。私は現在、PMDのパーサと闘っています。私はまだそれを見ていないが、ジャックポットはこれを行うことができますか?その他の提案はありますか?Javaソースコード内の特定のAPIへの呼び出しをコメントアウトする方法
答えて
あなたはこのコメントアウトしたい場合:
Log.doLog("Here is a" /* With a block comment to make it hard */
+ " multiline log statement"
); doSomethingEssential();
をあなたには、いくつかの場所のコメントを置くために知っておく延長にコードを解析する必要があると思いますので、あなたはそれのトリッキー時間を持っていると思います。私。代わりにこれを行うには
// Log.doLog("Here is a" /* With a block comment to make it hard */
// + " multiline log statement"
// ); // Line break inserted here
doSomethingEssential();
それははるかに些細です:あなたはこれを行うことができるようにしたい
if (false) Log.doLog("Here is a" /* With a block comment to make it hard */
+ " multiline log statement"
);
を一部のコンパイラおよびログ文がアウトに最適化されてしまう「偽の場合」最終的な.classファイルにはなりません。
そのように、あなたが必要とするすべてのコードのトリッキーな解析に頼ることなく
"if (false) Log.doLog(" or
"if (true) Log.doLog("
どちらかと
"Log.doLog("
のすべての出現箇所を置き換えるビルドスクリプトのステップを検索/置換です。
izb、私はこのソリューションを使用して終了しました。私はこの変更を行うためにsedを使いました。手元にある議論に何も追加しない、役に立たない、ユーモラスではあるが不自然な、不思議なコメントを作るのではなく、この解決策を書く時間をとってくれてありがとう。 :-) –
これはあなたが求めているのではないことを知っていますが、設定ファイルにログOFFを有効にすることができます。
ありがとうございましたビルは、機能的には同じものを達成していますが、それは私が何をしているかではありません。 logger.log(..)呼び出しをコメントアウトして、引数が評価されないようにしたかったのです。 –
問題ありません。私はいつもそれを削除するよりむしろこれを残すつもりです。 –
slf4jのjul-to-slf4jモジュールを使用すると、すべてのjava.util.logging呼び出しをslf4jにリダイレクトできます。次に、slf4j-nopモジュールを選択してすべてのロギングステートメントを無視できます。
これが実行するのですか、本当にこれらのソース行を削除する必要はありますか?
ツールを使用してすべてのログコードをコメントアウトまたは削除することは悪い考えかもしれません。
あなたが気づかない副作用のコードがある場合があります:
while (x > 5)
{
// some code here
Logger.global.finest("X is now bigger: " + (x++));
}
は本当の明白な例のthatsが、それはロガーコール内部のメソッド呼び出しか何かと非常に微妙である可能性があります。
あなたがあなたのコメントで言うように、引数の評価を避けるために探している場合は、私が想定し...ログ出力をオフにし、または手動で全部を通過し、おそらく
これがあなたのコードにある場合、あなたは副作用に値します;-) – Robin
安全です
logger.log("Expensive toString() operation on " + this);
を無効にしますか?
それが事実だし、それはあなたのコードを散在いた場合、私は上記のすべてのインスタンスを囲むようにAspectJのようなものを使用したい:
if (loggingEnabled) {
...
}
とfalseにloggingEnabled
フラグを設定します。
*なぜ*誰かがこれを投票したのを知ってうれしいですか? –
- 1. 特定のPythonバージョンをscript.py内で呼び出す方法 - Windows
- 2. 特定のサブドメインへの特定の呼び出しを制限しますか?
- 3. ネイティブjava関数呼び出しのソースコードを見つける方法
- 4. カスタムルールを使用してFxCopの特定のメソッドへの呼び出しを検出する方法 - チェックメソッド
- 5. Jquery Ajax Web APIへの呼び出し
- 6. メソッドの特定の呼び出しへの仕様の分離
- 7. iOSで特定のユーザーのデフォルトを呼び出す方法
- 8. Harvest API:未定義のメソッドへの呼び出しHarvestAPI :: getActiveProjects
- 9. Javaで特定のクラスメソッドを呼び出す(ポリモーフィズムなし)
- 10. Javaパッケージの呼び出し方法
- 11. 特定の条件でループ内で別のJava GUIプログラムを呼び出す
- 12. APIを使用してswitchvoxの呼び出しを特定の演算子に転送する方法
- 13. アンドロイドで特定のメールクライアントを呼び出す方法は?
- 14. Androidで特定の連絡先を呼び出す方法...?
- 15. 特定のイベントで$ customer-> save()を呼び出す方法
- 16. 特定の時刻にアラームマネージャを呼び出す方法は?
- 17. Block APIへのAPI呼び出しを探すアプリケーションID
- 18. SymfonyのAPI呼び出しの特定のフィールドのみを返します
- 19. WindowsのpythonソースコードからJythonインタプリタを呼び出す方法
- 20. 特定のモバイルアプリケーションからのAPI呼び出しを許可する
- 21. 3で行ったDatastax Java APIへの呼び出しをアップグレードする
- 22. windbgの特定の呼び出しスタックフレームのレジスタ値を調べる方法
- 23. RXSwift - APIを呼び出す方法
- 24. eTapestry APIを呼び出す方法
- 25. JavaでAIR APIを呼び出す方法は?
- 26. JavaでNetDocuments SOAP APIを呼び出す方法は?
- 27. NDK C++スレッドからJava APIを呼び出す方法は?
- 28. Chrome DevToolsの特定のAPIへの呼び出しを抑制し、他のAPIを絞らない方法はありますか?
- 29. あなたのクラスを呼び出したフォームモジュールを特定する方法
- 30. ミラーAPIへの呼び出し回数を制限するベストプラクティス
私はこれを何年も使っていないので、これを "本当の"答えにするつもりはありませんが、Java文法を持ち、ASTノードのコメントをサポートしているANTLRもチェックアウトできます。自分のPMDルールを稼働させることは決して大したことではありませんでしたが、PMD自体ではなくEclipse統合を責めています。 – erickson