Android 在命令行上筛选Logcat日志
问题:我想从命令行查看Android 在命令行上筛选Logcat日志,android,logcat,Android,Logcat,问题:我想从命令行查看“Legendry Eagle”的日志 我试过: public static final TAG = "Legendry Eagle"; adb logcat-s“Legendry Eagle” 亚洲开发银行logcat-s 但它仍然不起作用 如果标准的adb logcat-s标记名不起作用,您可以通过管道将adb的输出输送到find以过滤您需要的内容,例如 adb logcat -s "Legendry Eagle" adb logcat -s <Lege
“Legendry Eagle”
的日志
我试过:
public static final TAG = "Legendry Eagle";
adb logcat-s“Legendry Eagle”
亚洲开发银行logcat-s
但它仍然不起作用 如果标准的
adb logcat-s标记名
不起作用,您可以通过管道将adb
的输出输送到find
以过滤您需要的内容,例如
adb logcat -s "Legendry Eagle"
adb logcat -s <Legendry Eagle>
这会将整个logcat传递给DOS
find
命令,该命令会过滤掉包含Legendry Eagle字符串的行。使用此命令adb logcat*:W并读取此命令 如果只想显示特定标记的logcat,请按如下方式操作:
adb logcat | find "Legendry Eagle"
*:S
很重要,因为它将所有其他标记设置为静默。如果我只想在详细级别跟踪我的MainActivity
标记,语法如下所示
adb logcat YourTAGHere:Priority *:S
编辑:
我没有找到用空格过滤标签的好方法
LegendryEagle
工作正常,但我无法筛选出LegendryEagle
答案非常简单。请删除两个单词之间的空格,然后重试
adb logcat MainActivity:V *:S
看看那只logcat。您得到了答案。假设您使用Eagle作为日志标记,请使用以下命令: 亚洲开发银行logcat Eagle:*:s 据我所知,Eagle:*表示打开Eagle标记的所有日志,*:s表示使所有其他标记静音 我个人觉得EclipseLogcat视图比命令行更容易使用,它对不同级别的日志有不同的颜色,您可以创建一个过滤器并保存它,它将永远留在那里,直到您删除该过滤器
public static final TAG = "LegendryEagle";
adb logcat -s "LegendryEagle"
将只显示带有“您的标记”的日志。Offtopic:为什么您使用DOS Promt而不是Eclipse进行调试?或者您没有调试?使用[this][1]链接,可能会有帮助[1]:您确定您没有简单地拼写错误命令上的标记吗?也许您的项目实际上使用了Legendary Eagle,但您正在搜索Legendry Eagle(反之亦然)。文档中说,
系列规范是以空格分隔的。
因此,如果您试图按空格进行筛选,则无法使用标记中的空格。web视图会将所有控制台.log
记录到“web控制台”,所以这并没有真正的帮助。文档说这一系列规范是以空格分隔的。
这可能就是为什么他的“Legendry Eagle”标记未能筛选。+1用于*:S。现在我清楚地知道了如何使用选项这一系列规范是以空格分隔的
,因为您在Windows命令提示符下,当您在Windows命令提示符下时,可以使用带双引号的参数将空格括起来,即“空白参数”
来转义它们。考虑一下移动“c:\android文件”“c:\my code\android文件”
。这意味着您应该能够做到:adb logcat“Legendary Eagle:Priority”*:S
。我无法确切地确认,因为我没有任何空白使用标记进行测试,但这起到了作用:adb logcat”StatusBarManagerService:V“*:S
这说明它在Windows上,而不是在adb系统上。即使使用双引号,adb也只使用第一个字来过滤输出。如果要过滤包含空格的字符串,则提供解决方案。>*:S很重要,因为它会将所有其他标记设置为静默+1 thx!带有“find xyz”的扩展也解决了我的问题,thx!(除非你进行一个完整的1小时研究,否则互联网不会告诉你这一点)这解决了我的问题。*:S和-S方法可能已经过时。
adb logcat | grep "your tag"