15

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.

6
  • 1
    adb logcat -s "Web Console":*... I'd recommend not to use spaces in the tag name though Commented May 14, 2015 at 21:28
  • @AlexP. nope, still nada. The tag is defined by Cordova, and I have no idea how to change that. It used to be CordovaLog and like I said then everything worked beautifully. Either the info on how to change the tag name doesn't exist in the docs, or my Google Fu fails me miserably. Commented May 14, 2015 at 21:49
  • 1
    adb shell "logcat -s 'Web Console':*" Commented May 14, 2015 at 22:30
  • 2
    well there's always adb shell "logcat | grep 'Web Console'" Commented May 14, 2015 at 22:38
  • 1
    @AlexP. Yes! That's the one! Please make an answer out of it so I can accept it! Commented May 14, 2015 at 22:41

5 Answers 5

22

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'"
Sign up to request clarification or add additional context in comments.

3 Comments

saved a lot of head ache
I just type adb logcat | grep app=mi
In my case filtering by "Web Console" didn't work, but worked by "chromium": adb shell "logcat | grep 'chromium'"
7

Alternatively when runing adb on linux or unix based os/git bash:

adb logcat | grep 'Web Console'

Comments

5

What works for me in 2019:

adb -d logcat chromium:I *:S

The -d indicating a physical device in my case. If all else fails just dump the results of adb logcat into a text file and do a search for "CONSOLE", that will give you the provider for your logcat filter. It seems this changes over time, and depending on your particular dev environment.

2 Comments

This was the only thing that worked for me! Thank you
and also in 2020
2

While you can use grep under Linux/Unix, findstr might be your choice under Windows:

adb logcat | findstr /C:"Web Console"

If you prefer to use grep under Windows, you can get it from http://gnuwin32.sourceforge.net/packages/grep.htm.

4 Comments

the accepted answer works the same in all 3 supported operating systems. no need for windows only solution
You are absolutely right (grep works on all major OS) - I postet this answer a) to target users that are not too familiar with the GNU tools b) to take into account that the user stated "I'm on Windows so I can't grep" and c) to provide a link to grep (once more to target users that mostly work under windows and might not even know of grep)
you are missing the point that in the accepted answer grep runs on the device itself. so it does not matter if grep is available on the host PC system
I did indeed - very good point - your answer could also improve the performance of the logging if you run the application on a physical device as the host running adb will not have to filter the whole log (leaving it to the device to do the filtering)
0

I'm using a filter "chromium & com.example.usbwebview"

1 Comment

As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.