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

pvabu6sv  于 2023-03-06  发布在  Java
关注(0)|答案(5)|浏览(116)

当我在大项目中工作时,我经常在开发分支中使用日志。但我不希望在发布/主分支中使用日志。当我在做一些卡时,我根据任务的难度使用10 - 50个日志。删除不同类的50个日志需要2 - 5分钟。与完成一个任务的时间相比,这不是很多,但我希望减少这个时间。
例如,我有这样的日志:

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

....

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

它们都具有相同的开头-Log. d(TAG
要查找要删除的所有日志,我使用以下命令:在java类中Ctrl + F-〉insert Log. d(TAG)-〉按下向下箭头-〉在每个日志上按Ctrl + Y,所以,我快速删除了所有以Log. d(TAG)开头的日志
有没有更快的方法?例如,如果有一些相等的字符串要删除,我可以使用:右键单击应用程序-〉替换路径.. -〉要查找的文本:Log. d(标签,"方法:常量滚动");- 〉替换为:(空)-〉查找所以,在几秒钟内,我可以删除整个项目上的相等字符串。也许有一些删除字符串的组合有相同的开始?

wnavrhmk

wnavrhmk1#

我的方式:

**1)**启用列选择模式(alt+shift+insert
**2)**选择一个LOG.d(标签,“文本”);“日志”部分
**3)**然后执行shift + ctrl + alt + j
**4)**单击左箭头
**5)**执行移位+结束
**6)**点击删除。

这一次在java文件中移除所有LOG调用。

dgenwo3n

dgenwo3n2#

您可以使用ProGuard在构建发布时删除日志。

-assumenosideeffects class android.util.Log {
    public static boolean isLoggable(java.lang.String, int);
    public static int v(...);
    public static int i(...);
    public static int d(...);
}

这将在你为发布而构建时删除日志。显然,确保你为发布打开了proguard,为调试关闭了proguard。而且,这将在应用中保留你的错误日志,因为你可能无论如何都想把它们放在那里。

js81xvg6

js81xvg63#

新闻界

ctrl+shift+r

然后在打开的窗口中启用Regex按钮,它就像
.*
写入

Log.[edivw]\(.*;

在第一个文本框中
确保第二本教科书是空的,然后按全部替换

  • 但建议用//Log替换Log.。这样您就可以注解所有日志。
ddarikpa

ddarikpa4#

我会这么做:
1.右键单击应用程序
1.在路径中替换
1.查找:"Log. d("(或任何您需要的内容)
1.替换为:""
1.查找

nwsw7zdq

nwsw7zdq5#

我将给予我在C++中所做的一些事情的Java等价物:

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”,日志条目保留在源代码中,以防我以后启用它。

相关问题