私の同僚の 1 人がロガーを使用していましたが、ロガーを呼び出す前に "is-loggable" テストを配置するのを忘れていた非常に大きなプロジェクトがあります。ただし、一部のロガーは適切に保護されています。
保護されていないすべてのロガー呼び出しを検索するために Eclipse で使用できる正規表現を探していますが、それを行うための否定的な後読みで適切な正規表現を見つけることができません。
これを明確にするためのサンプルを次に示します。
私はこれを一致させたい:
logger.fine("Exception raised: " +
e.getClass().getName() + ". See console for details.");
私はこれを一致させたくありません:
if (logger.isLoggable(Level.FINE)) {
logger.fine("Exception raised: " +
e.getClass().getName() + ". See console for details.");
}
これも:
if (logger.isLoggable(Level.FINE))
logger.fine("Exception raised: " +
e.getClass().getName() + ". See console for details.");
メッセージの内容や、ロガー メソッドの呼び出し (severe()、warning()、...) に続くものと一致させる必要はありません。必要なのは、そのlogger.fine
部分だけです。
これまでのところ、この正規表現を使用してきまし
((?<!if\s?.?logger\.isLoggable.?Level.{0,20})logger.(severe|warning|info|fine|finer|finest))
たが、一致させたくないものに一致します。これをどのように修正できるかについてのアイデアはありますか?
コードはフォーマットされています (インデントはタブで行われます)。