当我使用大项目时,我经常在开发分支中使用日志。但我不希望在发布/主分支中有日志。当我做一些卡时,我使用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”); - >替换为:(空) - >找 所以,在几秒钟内我可以在整个项目中删除相等的字符串。 也许有一些组合用于删除具有相同开头的字符串?
答案 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)
我会这样做:
答案 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”,如果我想稍后启用它,则日志条目将保留在源中。