我正在使用三星Galaxy S3设备进行开发,我的应用程序使用的是摄像头。在logcat中,有一个由本机系统生成的带有标记Camera-JNI的输出,它以每秒20次的速度写入logcat,导致logcat非常快地清理最古老的条目。
是否可以从已经安装的应用程序或系统日志中禁用日志以防止这种情况发生?过滤器不能工作,因为logcat仍然是填充的,并且行仍然是被分类的。
谢谢。
编辑
文档says如下:
可以通过设置系统属性:
setprop log.tag.<YOUR_LOG_TAG> <LEVEL>来更改默认级别。您还可以创建一个local.prop文件,其中包含以下内容:log.tag.<YOUR_LOG_TAG>=<LEVEL>并将其放在/data/local.prop中。
编辑2
我已经这样做了(生根设备,将local.prop文件推送到/data并重新启动),但是标记仍然出现。
发布于 2012-07-24 12:48:10
通过查看android源代码(2.3.x),我可以看到以下内容:
执行
shell setprop log.tag.XYZ不会在这里工作(frameworks/base/core/jni/android_hardware_Camera.cpp),因为正在使用LOGV()宏进行日志记录。此日志记录方法不使用属性来检测某些组件是否希望禁用日志记录。这就是我能够通过android代码跟踪调用的范围。
因此,使用setprop(...)不适用于禁用android系统组件的日志记录,但是当日志来自用base/core/java/android/util/Log.java和frameworks/base/core/jni/android_util_Log.cpp进行日志记录的用户应用程序等时,它应该可以工作。我猜android_util_Log_isLoggable()是用来过滤的。
我认为,除了为您的设备构建源代码和禁用您正在使用的相机代码中的LOGV宏之外,我别无选择。
发布于 2012-07-24 03:05:12
你可以试试像adb shell setprop log.tag.Camera-JNI ERROR这样的东西。如果它不能工作,只需过滤日志或将其转储到一个文件中,然后使用grep查找您感兴趣的行,或者使用grep -v Camera-JNI过滤掉相机。
发布于 2015-11-21 12:30:34
如果希望看到特定的标记,请使用:
logcat -s YourTag:* SecondTag:* ThirdTag:* ...您也可以使用adb logcat
只要您想要过滤所需的标记,就可以多次指定<TAG>:*。
示例:、adb logcat -s AndroidRuntime:* MyApp:*、filters、AndroidRuntime和MyApp标记。因此,您将看到所有未登录的异常(崩溃)以及应用程序的所有日志。
https://stackoverflow.com/questions/11576758
复制相似问题