繁体   English   中英

如何禁用Android的特定标签的内部日志记录(例如AbsListView,GestureDetector,endeffect)

[英]How can I disable Android's internal logging for specific tags (e.g. AbsListView, GestureDetector, endeffect)

介绍

我正在为android开发一个应用程序,似乎在强大的系统中启用了一些持久性日志记录,请参阅下面的一些示例。 我正在使用我的Galaxy S4设备上的Eclipse进行调试(4.2.2)。

以下是我在LogCat视图中看到的日志消息类型列表:

  • I/System.out :它是调试器输出,标志着应用程序的开始,很有用
  • D/dalvikvmGC_FOR_ALLOCGC_CONCURRENT非常有用,看我用我的代码生成了太多垃圾
  • D/AbsListViewI/endeffect :每次创建ListView时,即主要是在我在活动之间导航时
  • I/CustomFrequencyManager D/GestureDetectorD/GestureDetector :每次触摸屏幕
  • W/IInputConnectionWrapper :不知道,但绝对不是我的错,即垃圾邮件
  • 其他人:不要介意,因为他们大多是错误

如何禁用不是由我的代码生成的特定日志消息? 为了摆脱listview创建日志,我已经尝试过:

  • 来自Windows cmd的adb shell setprop log.tag.AbsListView INFO
  • Application.onCreate System.setProperties("log.tag.AbsListView", "INFO")

我正在寻找一个解决方案

  • 我可以嵌入我的应用程序的代码/配置中,所以每次重新启动手机时都不必执行它(就像adb setprop )。
  • 我没有在LogCat视图中将日志级别设置为WARN,因为这意味着我对自己的应用程序一直坚持使用WARN,ERROR和FATAL(你必须承认这不是传递调试消息的最佳方式;而且它会隐藏像GC这样的重要内容!)

和日志

10-26 18:45:36.387: W/ActivityThread(10956): Application com.example.android.apis is waiting for the debugger on port 8100...
10-26 18:45:36.437: I/System.out(10956): Sending WAIT chunk
10-26 18:45:36.447: I/dalvikvm(10956): Debugger is active
10-26 18:45:36.638: I/System.out(10956): Debugger has connected
10-26 18:45:36.638: I/System.out(10956): waiting for debugger to settle...
10-26 18:45:36.838: I/System.out(10956): waiting for debugger to settle...
10-26 18:45:37.038: I/System.out(10956): waiting for debugger to settle...
10-26 18:45:37.839: I/System.out(10956): debugger has settled (1325)
10-26 18:45:38.610: E/MoreInfoHPW_ViewGroup(10956): Parent view is not a TextView
10-26 18:45:38.680: D/dalvikvm(10956): GC_FOR_ALLOC freed 767K, 9% free 17300K/18984K, paused 17ms, total 20ms
10-26 18:45:38.690: I/dalvikvm-heap(10956): Grow heap (frag case) to 20.036MB for 2359312-byte allocation
10-26 18:45:38.700: D/dalvikvm(10956): GC_FOR_ALLOC freed 3K, 8% free 19600K/21292K, paused 13ms, total 13ms
10-26 18:45:38.720: D/dalvikvm(10956): GC_CONCURRENT freed <1K, 8% free 19601K/21292K, paused 3ms+5ms, total 17ms
10-26 18:45:38.760: D/AbsListView(10956): Get MotionRecognitionManager
10-26 18:45:38.770: D/AbsListView(10956): onVisibilityChanged() is called, visibility : 4
10-26 18:45:38.770: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:45:38.890: D/AbsListView(10956): onVisibilityChanged() is called, visibility : 0
10-26 18:45:38.890: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:45:38.920: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:45:38.950: I/endeffect(10956): AbsListView.onMeasure(), getWidth()=0, getHeight()=0, this=android.widget.ListView{424124d8 VFED.VC. .F....I. 0,0-0,0 #102000a android:id/list}
10-26 18:45:38.960: D/libEGL(10956): loaded /system/lib/egl/libEGL_adreno200.so
10-26 18:45:38.960: D/libEGL(10956): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
10-26 18:45:38.970: D/libEGL(10956): loaded /system/lib/egl/libGLESv2_adreno200.so
10-26 18:45:38.970: I/Adreno200-EGL(10956): <qeglDrvAPI_eglInitialize:265>: EGL 1.4 QUALCOMM build:  (CL3579225)
10-26 18:45:38.970: I/Adreno200-EGL(10956): Build Date: 04/22/13 Mon
10-26 18:45:38.970: I/Adreno200-EGL(10956): Local Branch: adreno_sba_20130419
10-26 18:45:38.970: I/Adreno200-EGL(10956): Remote Branch: 
10-26 18:45:38.970: I/Adreno200-EGL(10956): Local Patches: 
10-26 18:45:38.970: I/Adreno200-EGL(10956): Reconstruct Branch: 
10-26 18:45:39.040: D/OpenGLRenderer(10956): Enabling debug mode 0
10-26 18:45:39.150: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:45:39.150: I/endeffect(10956): AbsListView.onLayout(), getWidth()=1080, getHeight()=1701, this=android.widget.ListView{424124d8 VFED.VC. .F....ID 0,0-1080,1701 #102000a android:id/list}
10-26 18:45:39.320: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:45:39.480: I/endeffect(10956): AbsListView.onMeasure(), getWidth()=1080, getHeight()=1701, this=android.widget.ListView{424124d8 VFED.VC. .F....I. 0,0-1080,1701 #102000a android:id/list}
10-26 18:45:39.490: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:45:39.490: I/endeffect(10956): AbsListView.onLayout(), getWidth()=1080, getHeight()=1701, this=android.widget.ListView{424124d8 VFED.VC. .F....ID 0,0-1080,1701 #102000a android:id/list}
10-26 18:45:56.757: I/CustomFrequencyManager(10956): newFrequencyRequest  - mFrequency = 1566000, mTimeoutMs = -1, mPkgName = LIST_SCROLL_BOOSTER@1
10-26 18:45:56.757: I/CustomFrequencyManager(10956): Boost Request from package = LIST_SCROLL_BOOSTER@1 frequency : 1566000type = 6
10-26 18:45:56.767: I/CustomFrequencyManager(10956): !! pkgName = LIST_SCROLL_BOOSTER@1
10-26 18:45:56.767: I/CustomFrequencyManager(10956): Request from package name pkgName = LIST_SCROLL_BOOSTER@1
10-26 18:45:56.767: I/CustomFrequencyManager(10956): mContext is Not Null  mContext.pkgName = com.example.android.apis
10-26 18:45:56.767: I/CustomFrequencyManager(10956): mToken is Null....Creating New Binder!
10-26 18:45:56.767: I/CustomFrequencyManager(10956): CPUDVFSControlRequest : doFrequencyRequest::  = 1566000 Timeout : -1
10-26 18:45:56.767: I/CustomFrequencyManager(10956): newFrequencyRequest  - mFrequency = 2, mTimeoutMs = -1, mPkgName = LIST_SCROLL_BOOSTER_CORE@2
10-26 18:45:56.767: I/CustomFrequencyManager(10956): Boost Request from package = LIST_SCROLL_BOOSTER_CORE@2 frequency : 2type = 4
10-26 18:45:56.767: I/CustomFrequencyManager(10956): !! pkgName = LIST_SCROLL_BOOSTER_CORE@2
10-26 18:45:56.767: I/CustomFrequencyManager(10956): Request from package name pkgName = LIST_SCROLL_BOOSTER_CORE@2
10-26 18:45:56.777: I/CustomFrequencyManager(10956): mContext is Not Null  mContext.pkgName = com.example.android.apis
10-26 18:45:56.777: I/CustomFrequencyManager(10956): mToken is Null....Creating New Binder!
10-26 18:45:56.777: I/CustomFrequencyManager(10956): CPUCoreControlRequest : doFrequencyRequest::  = 2 Timeout : -1
10-26 18:45:56.807: D/GestureDetector(10956): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 8 mFalseSizeCnt:0
10-26 18:45:57.908: I/CustomFrequencyManager(10956): newFrequencyRequest  - mFrequency = 1566000, mTimeoutMs = -1, mPkgName = LIST_SCROLL_BOOSTER@1
10-26 18:45:57.908: I/CustomFrequencyManager(10956): Boost Request from package = LIST_SCROLL_BOOSTER@1 frequency : 1566000type = 6
10-26 18:45:57.908: I/CustomFrequencyManager(10956): !! pkgName = LIST_SCROLL_BOOSTER@1
10-26 18:45:57.908: I/CustomFrequencyManager(10956): Request from package name pkgName = LIST_SCROLL_BOOSTER@1
10-26 18:45:57.908: I/CustomFrequencyManager(10956): mContext is Not Null  mContext.pkgName = com.example.android.apis
10-26 18:45:57.908: I/CustomFrequencyManager(10956): mToken is Null....Creating New Binder!
10-26 18:45:57.908: I/CustomFrequencyManager(10956): CPUDVFSControlRequest : doFrequencyRequest::  = 1566000 Timeout : -1
10-26 18:45:57.918: I/CustomFrequencyManager(10956): newFrequencyRequest  - mFrequency = 2, mTimeoutMs = -1, mPkgName = LIST_SCROLL_BOOSTER_CORE@2
10-26 18:45:57.918: I/CustomFrequencyManager(10956): Boost Request from package = LIST_SCROLL_BOOSTER_CORE@2 frequency : 2type = 4
10-26 18:45:57.918: I/CustomFrequencyManager(10956): !! pkgName = LIST_SCROLL_BOOSTER_CORE@2
10-26 18:45:57.918: I/CustomFrequencyManager(10956): Request from package name pkgName = LIST_SCROLL_BOOSTER_CORE@2
10-26 18:45:57.928: I/CustomFrequencyManager(10956): mContext is Not Null  mContext.pkgName = com.example.android.apis
10-26 18:45:57.928: I/CustomFrequencyManager(10956): mToken is Null....Creating New Binder!
10-26 18:45:57.928: I/CustomFrequencyManager(10956): CPUCoreControlRequest : doFrequencyRequest::  = 2 Timeout : -1
10-26 18:45:58.099: D/GestureDetector(10956): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 17 mFalseSizeCnt:0
10-26 18:46:09.209: I/CustomFrequencyManager(10956): newFrequencyRequest  - mFrequency = 1566000, mTimeoutMs = -1, mPkgName = LIST_SCROLL_BOOSTER@1
10-26 18:46:09.209: I/CustomFrequencyManager(10956): Boost Request from package = LIST_SCROLL_BOOSTER@1 frequency : 1566000type = 6
10-26 18:46:09.219: I/CustomFrequencyManager(10956): !! pkgName = LIST_SCROLL_BOOSTER@1
10-26 18:46:09.219: I/CustomFrequencyManager(10956): Request from package name pkgName = LIST_SCROLL_BOOSTER@1
10-26 18:46:09.219: I/CustomFrequencyManager(10956): mContext is Not Null  mContext.pkgName = com.example.android.apis
10-26 18:46:09.219: I/CustomFrequencyManager(10956): mToken is Null....Creating New Binder!
10-26 18:46:09.219: I/CustomFrequencyManager(10956): CPUDVFSControlRequest : doFrequencyRequest::  = 1566000 Timeout : -1
10-26 18:46:09.219: I/CustomFrequencyManager(10956): newFrequencyRequest  - mFrequency = 2, mTimeoutMs = -1, mPkgName = LIST_SCROLL_BOOSTER_CORE@2
10-26 18:46:09.229: I/CustomFrequencyManager(10956): Boost Request from package = LIST_SCROLL_BOOSTER_CORE@2 frequency : 2type = 4
10-26 18:46:09.229: I/CustomFrequencyManager(10956): !! pkgName = LIST_SCROLL_BOOSTER_CORE@2
10-26 18:46:09.229: I/CustomFrequencyManager(10956): Request from package name pkgName = LIST_SCROLL_BOOSTER_CORE@2
10-26 18:46:09.229: I/CustomFrequencyManager(10956): mContext is Not Null  mContext.pkgName = com.example.android.apis
10-26 18:46:09.229: I/CustomFrequencyManager(10956): mToken is Null....Creating New Binder!
10-26 18:46:09.229: I/CustomFrequencyManager(10956): CPUCoreControlRequest : doFrequencyRequest::  = 2 Timeout : -1
10-26 18:46:09.930: D/GestureDetector(10956): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 51 mFalseSizeCnt:0
10-26 18:46:17.347: D/GestureDetector(10956): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 9 mFalseSizeCnt:0
10-26 18:46:18.028: E/MoreInfoHPW_ViewGroup(10956): Parent view is not a TextView
10-26 18:46:18.058: D/AbsListView(10956): Get MotionRecognitionManager
10-26 18:46:18.068: D/AbsListView(10956): onVisibilityChanged() is called, visibility : 4
10-26 18:46:18.068: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:46:18.078: D/AbsListView(10956): onVisibilityChanged() is called, visibility : 0
10-26 18:46:18.078: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:46:18.078: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:46:18.098: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:46:18.128: I/endeffect(10956): AbsListView.onMeasure(), getWidth()=0, getHeight()=0, this=android.widget.ListView{427b2ca0 VFED.VC. .F....I. 0,0-0,0 #102000a android:id/list}
10-26 18:46:18.228: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:46:18.228: I/endeffect(10956): AbsListView.onLayout(), getWidth()=1080, getHeight()=1701, this=android.widget.ListView{427b2ca0 VFED.VC. .F....ID 0,0-1080,1701 #102000a android:id/list}
10-26 18:46:18.338: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:46:18.408: I/endeffect(10956): AbsListView.onMeasure(), getWidth()=1080, getHeight()=1701, this=android.widget.ListView{427b2ca0 VFED.VC. .F....I. 0,0-1080,1701 #102000a android:id/list}
10-26 18:46:18.418: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:46:18.418: I/endeffect(10956): AbsListView.onLayout(), getWidth()=1080, getHeight()=1701, this=android.widget.ListView{427b2ca0 VFED.VC. .F....ID 0,0-1080,1701 #102000a android:id/list}
10-26 18:46:18.549: W/IInputConnectionWrapper(10956): setComposingText on inactive InputConnection
10-26 18:46:18.559: D/AbsListView(10956): onVisibilityChanged() is called, visibility : 4
10-26 18:46:18.559: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:46:23.914: I/CustomFrequencyManager(10956): newFrequencyRequest  - mFrequency = 1566000, mTimeoutMs = -1, mPkgName = LIST_SCROLL_BOOSTER@3
10-26 18:46:23.914: I/CustomFrequencyManager(10956): Boost Request from package = LIST_SCROLL_BOOSTER@3 frequency : 1566000type = 6
10-26 18:46:23.914: I/CustomFrequencyManager(10956): !! pkgName = LIST_SCROLL_BOOSTER@3
10-26 18:46:23.914: I/CustomFrequencyManager(10956): Request from package name pkgName = LIST_SCROLL_BOOSTER@3
10-26 18:46:23.914: I/CustomFrequencyManager(10956): mContext is Not Null  mContext.pkgName = com.example.android.apis
10-26 18:46:23.914: I/CustomFrequencyManager(10956): mToken is Null....Creating New Binder!
10-26 18:46:23.914: I/CustomFrequencyManager(10956): CPUDVFSControlRequest : doFrequencyRequest::  = 1566000 Timeout : -1
10-26 18:46:23.924: I/CustomFrequencyManager(10956): newFrequencyRequest  - mFrequency = 2, mTimeoutMs = -1, mPkgName = LIST_SCROLL_BOOSTER_CORE@4
10-26 18:46:23.924: I/CustomFrequencyManager(10956): Boost Request from package = LIST_SCROLL_BOOSTER_CORE@4 frequency : 2type = 4
10-26 18:46:23.924: I/CustomFrequencyManager(10956): !! pkgName = LIST_SCROLL_BOOSTER_CORE@4
10-26 18:46:23.924: I/CustomFrequencyManager(10956): Request from package name pkgName = LIST_SCROLL_BOOSTER_CORE@4
10-26 18:46:23.924: I/CustomFrequencyManager(10956): mContext is Not Null  mContext.pkgName = com.example.android.apis
10-26 18:46:23.924: I/CustomFrequencyManager(10956): mToken is Null....Creating New Binder!
10-26 18:46:23.924: I/CustomFrequencyManager(10956): CPUCoreControlRequest : doFrequencyRequest::  = 2 Timeout : -1
10-26 18:46:24.835: D/GestureDetector(10956): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 61 mFalseSizeCnt:0
10-26 18:46:26.676: D/GestureDetector(10956): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 11 mFalseSizeCnt:0
10-26 18:46:27.307: E/MoreInfoHPW_ViewGroup(10956): Parent view is not a TextView
10-26 18:46:27.337: D/AbsListView(10956): Get MotionRecognitionManager
10-26 18:46:27.347: D/AbsListView(10956): onVisibilityChanged() is called, visibility : 4
10-26 18:46:27.347: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:46:27.357: D/AbsListView(10956): onVisibilityChanged() is called, visibility : 0
10-26 18:46:27.357: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:46:27.357: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:46:27.387: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:46:27.407: I/endeffect(10956): AbsListView.onMeasure(), getWidth()=0, getHeight()=0, this=android.widget.ListView{4286ddf8 VFED.VC. .F....I. 0,0-0,0 #102000a android:id/list}
10-26 18:46:27.517: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:46:27.517: I/endeffect(10956): AbsListView.onLayout(), getWidth()=1080, getHeight()=1701, this=android.widget.ListView{4286ddf8 VFED.VC. .F....ID 0,0-1080,1701 #102000a android:id/list}
10-26 18:46:27.627: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:46:27.727: I/endeffect(10956): AbsListView.onMeasure(), getWidth()=1080, getHeight()=1701, this=android.widget.ListView{4286ddf8 VFED.VC. .F....I. 0,0-1080,1701 #102000a android:id/list}
10-26 18:46:27.738: D/AbsListView(10956): unregisterIRListener() is called 
10-26 18:46:27.738: I/endeffect(10956): AbsListView.onLayout(), getWidth()=1080, getHeight()=1701, this=android.widget.ListView{4286ddf8 VFED.VC. .F....ID 0,0-1080,1701 #102000a android:id/list}
10-26 18:46:27.808: W/IInputConnectionWrapper(10956): setComposingText on inactive InputConnection
10-26 18:46:27.818: D/AbsListView(10956): onVisibilityChanged() is called, visibility : 4
10-26 18:46:27.818: D/AbsListView(10956): unregisterIRListener() is called 

这是一个有趣的事实:以上所有内容都是由在调试模式下启动的Android ApiDemos应用程序生成的,然后转到Views / Lists并返回。

如何禁用不是由我的代码生成的特定日志消息?

如果您使用的是Eclipse,则只能通过定义过滤器来显示应用程序生成的日志。 在LogCat窗口的左下角,单击加号图标以创建新过滤器。 “按应用程序名称”字段需要以下格式: com.yourpackage.yourapp 保存此过滤器后,您只需单击它即可查看与您的应用相关的消息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM