如何在Android中启用/禁用日志级别?

如何在Android中启用/禁用日志级别?

例如,我有很多日志语句要调试。

Log.v(TAG, "Message here");
Log.w(TAG, " WARNING HERE");

在设备电话上部署此应用程序时,我希望从可以启用/禁用日志记录的地方关闭详细的日志记录。


慕姐4208626
浏览 1429回答 3
3回答

交互式爱情

一种常见的方法是创建一个名为loglevel的int,并根据loglevel定义其调试级别。public static int LOGLEVEL = 2;public static boolean ERROR = LOGLEVEL > 0; public static boolean WARN = LOGLEVEL > 1;...public static boolean VERBOSE = LOGLEVEL > 4;     if (VERBOSE) Log.v(TAG, "Message here"); // Won't be shown     if (WARN) Log.w(TAG, "WARNING HERE");    // Still goes through稍后,只需更改所有调试输出级别的LOGLEVEL即可。

潇湘沐

这个Android文档显示了关于日志级别的以下内容:除非在开发期间,否则不应该将详细的内容编译到应用程序中。调试日志在运行时编译,但在运行时剥离。始终保存错误、警告和信息日志。因此,您可能需要考虑删除日志详细日志语句,可能按照另一个答案中的建议使用ProGuard.根据文档,您可以使用SystemProperties在开发设备上配置日志记录。要设置的属性是log.tag.<YourTag>它应该设置为以下值之一:VERBOSE,&nbsp;DEBUG,&nbsp;INFO,&nbsp;WARN,&nbsp;ERROR,&nbsp;ASSERT,或SUPPRESS.&nbsp;有关此问题的更多信息,请参见isLoggable()方法。属性临时设置属性。setprop命令。例如:C:\android>adb&nbsp;shell&nbsp;setprop&nbsp;log.tag.MyAppTag&nbsp;WARN C:\android>adb&nbsp;shell&nbsp;getprop&nbsp;log.tag.MyAppTagWARN或者,您也可以将它们指定在文件‘/data/local.port’中,如下所示:log.tag.MyAppTag=WARNAndroid的后期版本似乎需要只读取/data/local.prop..这个文件是在启动时读取的,所以您需要在更新它之后重新启动它。如果/data/local.prop是可以写的,很可能会被忽略。最后,可以使用System.setProperty()方法.

Cats萌萌

最简单的方法可能是运行编译好的JAR。ProGuard在部署之前,配置如下:-assumenosideeffects&nbsp;class&nbsp;android.util.Log&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;int&nbsp;v(...);}这将-除了所有其他ProGuard优化之外-直接从字节码中删除所有冗长的日志语句。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android