Android Studio,从项目中快速删除所有日志

时间:2016-12-01 15:34:44

标签: java android logging

当我使用大项目时,我经常在开发分支中使用日志。但我不希望在发布/主分支中有日志。当我做一些卡时,我使用10-50个日志,具体取决于任务的难度。 删除不同类别的50个日志需要2-5分钟。与履行任务的时间相比,这并不是很多,但我希望减少这段时间。

例如,我有这样的日志:

Log.d(TAG, "Method: constantScrolling");

...

Log.d(TAG, "constantScrolling 2609 scrollTimer.cancel");

他们都有相同的开头 - Log.d(TAG

要查找要删除的所有日志,请使用以下命令:在java类中Ctrl + F - >插入Log.d(标签 - >按向下箭头 - >在每个日志上按Ctrl + Y. 因此,我快速删除所有具有相同开头Log.d(TAG

)的日志

有没有办法更快地做到这一点? 例如,如果有一些相同的字符串要删除,我可以使用:右键单击应用程序 - >替换路径.. - >要查找的文本:Log.d(TAG,“Method:constantScrolling”); - >替换为:(空) - >找 所以,在几秒钟内我可以在整个项目中删除相等的字符串。 也许有一些组合用于删除具有相同开头的字符串?

4 个答案:

答案 0 :(得分:2)

我的方式:

1)启用列选择模式(alt+shift+insert

2)在一个LOG.d(TAG,“文本”)上选择; “日志”部分。

3),然后执行shift + ctrl + alt + j

4)单击向左箭头

5)做shift + end

6)点击删除。

这会一次删除Java文件中的所有LOG调用。

答案 1 :(得分:-1)

您可以使用ProGuard在构建发布时删除日志。只需将以下内容添加到@Override public void onAttach(Context context) { super.onAttach(context); //register green-bot event here } @Override public void onDetach() { //un-register green-bot here super.onDetach(); }

即可
proguard-rules.pro

这将在您构建发布时删除日志。显然,请确保您已准备好发布和关闭以进行调试。此外,这会将您的错误日志保留在应用程序中,因为您可能还需要那些。

答案 2 :(得分:-1)

我会这样做:

  1. 右键点击应用
  2. 路径替换
  3. 查找:“Log.d(”(或任何你需要的)
  4. 替换为:“”
  5. 查找

答案 3 :(得分:-1)

我将给出Java相当于我在C ++中所做的事情:

class MyLog {
    static int d( String t, String m ) { return Log.d(t,m); }
    // static int d( String t, String m) { return 0; }
    static dx( String t, String m ) { return 0; }

    static int v( String t, String m ) { return Log.d(t,m); }
    // static int v( String t, String m) { return 0; }
    static vx( String t, String m ) { return 0; }

    ...
}

在我的程序中,我使用:

MyLog.d(标签,“消息”);

现在,如果我想完全禁用日志记录,那么我可以转到MyLog类并简单地注释掉第一个(真实)条目,并取消注释虚拟行。如果我想禁用特定条目,则将“.d”更改为“.dx”,如果我想稍后启用它,则日志条目将保留在源中。