There are several questions about the subject, however not one of them seems to address the particular problem I'm having.
I'm developing an app with Cordova/Ionic, and printing debugging info I was outputting with console.log()
by using adb logcat CordovaLog:D *:S
was working just fine until some updates. Now I can't seem to figure out how to properly filter logcat's output so I could only get the debugging info from my app.
Logging itself works. If I set no filters and redirect output to a file, I can see my debugging info among all the other debug messages, and it looks like this:
I/Web Console: Event triggered: device.ready:1
Logging to screen also works, but at a rate of approximately 100 lines per second. I've tried at least the following to filter output:
adb logcat -s "Web Console"
adb logcat "Web Console":V
adb logcat "Web Console":*
adb logcat -s Web
adb logcat Web:V
adb logcat "myApp":V
adb logcat myApp:V
adb logcat -s myApp
... and probably others I've already forgotten. They either print absolutely nothing, or absolutely everything from the system services.
I'm on Windows so I can't grep
, and the device I'm debugging on is running Android 4.2.2 so I can't use GapDebug, and neither does it seem to be possible to access the device's log via chrome://inspect
in Chrome.
I really, really would like to understand how filtering logcat's output works. I'm not willing to log everything to a file and then shift through that.
It seems that logcat
can not properly parse tag names with whitespaces. So instead I suggest using grep
on the device:
adb shell "logcat | grep 'Web Console'"