0

我正在清理我的代码库,我想知道是否可以使用 Eclipse 正则表达式来删除(替换)所有与日志记录相关的东西。

示例代码:

public static void setFoo( Foo param ) {
    singleton.setBar(param);
}

private void log(String msg) {
    Logger.log( msg );
}

private void setBar( Foo param ) {
    log( "Foo: " 
        + param.toString() );
    log( "bar" );
    this.mParam = param;
}

每个类都有自己的私有log(String msg)方法,需要删除以及对这些方法的所有引用。我在网上查看了提示和提示,并尝试了几个没有成功的例子......

更新:

搜索单行 log() -references 适用于^.*{1}\Wlog{1}\W.*\;\R

{1}\Waroundlog用于拒绝Dialog,logo等匹配。

如何添加多行支持?(?s)在表达式中将导致匹配log-match 之前文件中的所有文本...

有谁能够帮我?

4

3 回答 3

1

您可以从删除所有用于记录的导入语句开始。然后,日志行将清楚地显示为编译时错误。

于 2013-05-22T21:34:03.853 回答
0

睡了一夜后,我终于找到了解决方案......

  1. 所有log(String msg){}方法都可以通过表达式移除 (?s)^(\s|\w)*void\s{1}log{1}\W(.|^})*?[}](\s)*\R。适用于问题中定义的方法定义。

  2. 所有引用都可以通过 删除(?s)^\s*log{1}\W(.|^;)*?[;](\s)*\R。也匹配多行方法调用。

如果您发现一些违规行为,请随意修复语法,但这些表达式似乎对我的需求非常强大。

于 2013-05-23T07:05:36.747 回答
0

我认为这不能通过您的代码库中的一次查找/替换或重构操作来完成。最简单的方法是按类分类:

  1. 删除日志方法的内容
  2. 选择方法
  3. 选择重构 > 内联...
于 2013-05-22T20:51:39.530 回答