我一直在寻找能够影响logcat的所有东西,但我找不到这个问题的答案。我正在调试一个大型应用程序,它每秒将数百条logcat消息转储到屏幕上。在Eclipse中,我使用正则表达式按日志标记进行过滤,但这是事情变得奇怪的地方。 “暂停”按钮一直保持激活,没有明显的原因,并且考虑到大量新消息,在我可以获取我正在调查的特定事件序列的日志之前,它们将被覆盖,一次一点。我甚至设置了断点并尝试使用“导出”按钮逐位捕获日志,但应用程序是多线程的,由于来自其他线程的消息,它们仍然消失得太快。以某种方式增加缓冲区或者留下旧消息会很好,尽管此时我愿意完全放弃它并将其输出到文件中,但我不知道如何通过log标记过滤从命令行使用我的正则表达式。我有什么选择?
P.S。我一直在环顾四周,我希望这不是多余的 - 我没有找到任何具体解决我的问题,虽然我当然遇到了丰富的相关线程,这些线程并没有多大帮助。非常感谢!
答案 0 :(得分:0)
我遇到了类似的问题。我正在研究与Web服务器通信并下载大量数据的应用程序。我几乎为每个变量都有日志,我必须测试它们以查看我从JSON收到的结果是否正确。所以我做的是将所有日志记录在我的SD卡上的文件中,我做了类似的事情:
public void log2File(String filename, String log, int type){
switch(type){
case 1: // debug
case 2: //verbose
case 3: //warning
//..and etc
}
}
我没有找到任何更好的解决方案,所以这就是我做的方式。当然,你必须将你的日志添加到一个文件并保存。
希望这个解决方案对你有好处。
答案 1 :(得分:0)
我发现eclipse logcat窗口相当错误,具有很高的日志记录量 - 如果你试图关闭它,它甚至都不会被禁用。
为了实际捕获所需的数据,我倾向于使用命令行中的adb logcat命令。在linux上,或者可能是cygwin或osx你应该能够做到:
adb logcat | tee logfile
两者都看到飞过的消息并将它们记录到文件中。
答案 2 :(得分:0)
我知道这个问题已经过时了,但我和你的问题完全相同。我到处寻找一个好的解决方案,但没有找到一个对我有用的,所以我开始创建自己的工具。如果您使用的是Mac,则可以使用LogRabbit执行您想要执行的操作。它可以通过两种不同的方式帮助解决您的问题。
您可以在命令行中使用adb logcat -v threadtime
并将日志写入磁盘并将其导入LogRabbit。
过滤机制应足够快,以处理您所谈论的日志量。
看看http://lograbbit.com我希望这会有所帮助。