【发布时间】:2020-03-17 15:16:51
【问题描述】:
我有一个带有isDebugEnabled() 方法的记录器类。这被重复了超过 16,000 次,因此我们现在检查它是否在方法本身中启用,而不是在项目中的任何地方启用。
if ( logger.isDebugEnabled() )
{
logger.logMethodEntryMessage();
}
我想删除 if 语句,但在项目中的任何地方保留 logger.logMethodEntryMessage();。是否可以使用 Notepad++ 和 regex 或 eclipse 和 regex 来完成此操作?
感谢您的帮助
【问题讨论】:
-
到处都是一样的if语句?
-
@ctwheels 差不多,有些调用不同的记录器方法,但它们都是相同的格式。
-
@DeaneKane 您向我们提供更多细节很重要。因为根据这里的信息this
(?:if\s*\(\s*logger.isDebugEnabled\(\)\s*\)\s*{\s*|\G(?!\A))(?:(logger.logMethodEntryMessage\(\)\s*;)|\s*})有效,但如果是不同的方法,它不会。 -
@tobias_k 不,我不是在寻找 Java 代码来进行替换。只是我要替换的用 Java 编写的代码。
-
@ctwheels 谢谢,如果我用另一种方法替换该方法,它应该可以工作吗?我只有大约 3 种不同的方法。
logMethodExitMessage();我的logger.debug( ("fileType: " + fileType) );方法虽然接受各种参数。