Learn to logcat like a Pro!

Search This thread

androys

Member
Apr 24, 2012
43
8
Kolkata
Step 1. Take nandroid backup of ur phone
Step 2. Root it with superboot..... If rooting is successful, a supersu app will automatically install..... Run the app..... Update (if any) from play store.
Step 3. Install terminal emulator
Step 4. In terminal emulator type su
That's it..... U r in root account.
Sent from my HTC One V using xda app-developers app
 
  • Like
Reactions: idb117

MichunB

Senior Member
Aug 2, 2011
96
8
thanks for this tutorial
can I get timestamps with expression like this?
adb logcat {Tag}:V *:S
I try to put 'long' or 'time' in it but it does not work :(
 

bababar

Member
Nov 28, 2012
43
4
noob question

after reading all the thread my understanding is that this method applies only for rooted phones.
am i right ?
 

elherr

Senior Member
Jul 26, 2011
382
138
Isla de Malhado
thanks for this tutorial
can I get timestamps with expression like this?
adb logcat {Tag}:V *:S
I try to put 'long' or 'time' in it but it does not work :(
'adb logcat -v time'

For help on logcat parameters you can execute --
'adb logcat --help'

after reading all the thread my understanding is that this method applies only for rooted phones.
am i right ?
No. You can also enable developer mode on unrooted Google branded devices by going to Settings --> About phone and tapping 'Build number' seven times rapidly.
 

AGONTUK

Senior Member
Feb 22, 2013
624
2,630
Dhaka
  • In recovery tell it to reboot the phone. The logcat will start recording internally on your device at boot automatically.
  • Once the phone is at the lockscreen let it sit for 5 minutes.
  • Unlock the phone and let it sit for about 10 seconds.
  • Restart the phone.
  • Once you restart the phone open the logcat file on your desktop to make sure it’s not blank/empty/something went wrong and if everything’s golden - send to your favorite developer (ME! :D ).
Here's my problem. I rebooted to recovery and started the logcat process and it's fine. I can see the txt file updated with log. But when I press "reboot system now", adb stops and my pc shows "USB device not recognized". Is it a driver problem? Cause I've adb in normal, recovery, fastboot mode. Only while device is restarting, I lose adb. :(

FYI, when I type "adb logcat", it shows "no such file". I had to mount system to get logcat working.
 

Divyansh747

Senior Member
Oct 16, 2014
132
57
24
Pune
OnePlus 8T
hey i ported miui to yuphoria but back spker not working when i increase voice and bluetooth volume i receive sound from front spkr anyone here help me how to fix
log is attach below:-

---- Jan 1, 2016 5:43:36 AM ----
01-02 10:31:50.459 3724 3724 I InputManager: Initializing input manager, mUseDevInputEventForAudioJack=true
01-02 10:31:51.159 3724 3724 I SystemServer: Audio Service
01-02 10:31:51.219 3724 3724 W WiredAccessoryManager: This kernel does not have usb audio support
01-02 10:31:51.219 3724 3724 W WiredAccessoryManager: This kernel does not have HDMI audio support
01-01 05:30:02.239 3724 4111 E SoundPool: error loading /system/media/audio/ui/KeypressInvalid.ogg
01-01 05:30:02.239 3724 4111 W AudioService: Soundpool could not load file: /system/media/audio/ui/KeypressInvalid.ogg
01-01 05:30:02.269 307 4496 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:02.269 307 4496 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:02.269 307 4499 E OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
01-01 05:30:02.379 307 4499 E QC_EVRCENC: component init: role = OMX.qcom.audio.encoder.evrc
01-01 05:30:02.379 307 4499 I QC_EVRCENC: component init: role = OMX.qcom.audio.encoder.evrc
01-01 05:30:02.379 307 4499 I QC_EVRCENC: component_init: Component OMX.qcom.audio.encoder.evrc LOADED
01-01 05:30:02.389 307 4499 E QC_QCELP13ENC: component init: role = OMX.qcom.audio.encoder.qcelp13
01-01 05:30:02.389 307 4499 I QC_QCELP13ENC: component init: role = OMX.qcom.audio.encoder.qcelp13
0-01 05:30:02.389 307 4499 I QC_QCELP13ENC: component_init: Component OMX.qcom.audio.encoder.qcelp13 LOADED
01-01 05:30:02.549 307 4499 E OMX : FAILED to allocate omx component 'OMX.qcom.audio.decoder.wma'
01-01 05:30:02.549 307 4499 E OMX : FAILED to allocate omx component 'OMX.qcom.audio.decoder.wmaLossLess'
01-01 05:30:02.549 307 4499 E OMX : FAILED to allocate omx component 'OMX.qcom.audio.decoder.wma10Pro'
01-0105:30:02.549 307 4499 E OMX : FAILED to allocate omx component 'OMX.qcom.audio.decoder.amrwbplus'
01-01 05:30:02.559 307 4499 I OMX_QCELP13_DEC: component init: role = OMX.qcom.audio.decoder.Qcelp13
01-01 05:30:02.559 307 4499 I OMX_QCELP13_DEC: component_init: Component OMX.qcom.audio.decoder.Qcelp13 LOADED
01-01 05:30:02.569 307 4499 E OMX_EVRC_DEC: COMPONENT INIT OMX.qcom.audio.decoder.evrc
01-01 05:30:02.819 307 4827 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:02.849 307 4857 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:02.849 307 4857 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:02.899 307 4877 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:02.899 307 4877 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:02.939 307 4896 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:02.939 307 4896 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:04.949 307 4113 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:04.949 307 4113 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:04.949 307 4113 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:04.949 307 4113 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:04.949 307 4113 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:04.949 307 4113 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:04.949 307 4113 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:04.949 307 4113 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:04.949 307 4113 E AudioPolicyManager: unknown stream type 13
01-01 05:30:04.949 307 4113 E AudioPolicyManager: unknown stream type 13
01-01 05:30:16.899 3724 4111 W AudioTrack: AUDIO_OUTPUT_FLAG_FAST denied by client
01-01 05:30:16.899 307 865 I soundtrigger: audio_extn_sound_trigger_update_device_status: device 0x2 of type 0 for Event 1, with Raise=0
01-01 05:30:16.909 307 4113 I AudioFlinger: setAppName(), name=[system_server], active=[1]
01-01 05:30:16.909 307 865 W audio_hw_utils: audio_extn_utils_update_stream_app_type_cfg: App type could not be selected. Falling back to default
01-01 05:30:16.909 307 865 I audio_hw_primary: select_devices Selected apptype: 69936
01-01 05:30:16.909 307 865 I audio_hw_utils: audio_extn_utils_send_app_type_cfg app_type 69936, acdb_dev_id 14, sample_rate 48000
01-01 05:30:17.139 307 847 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:17.149 307 847 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:17.149 307 847 E AudioPolicyManager: unknown stream type 13
01-01 05:30:17.149 307 847 E AudioPolicyManager: zw_AudioPolicyManager::isStateInCall: 0
01-01 05:30:17.149 307 847 E AudioPolicyManager: unknown stream type 13
01-01 05:30:17.149 307 847 E AudioPolicyManager: unknown stream type 13
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 117
    adb logcat bootcamp

    I'm going to be teaching the basics of logcats. I sat for a few hours a while back and hammered all this stuff out with ckisgen from XDA/ACS holding my hand the whole way, so this is good info here. I see lots of posts about issues people have and no logcats accompanying them. A good logcat is fried gold to a dev troubleshooting a problem. :) I did the whole thing in Ubuntu (Linux) and have listed the Window$ $pecific desktop pathing below the Linux command. UNIVERSAL COMMANDS LINUX COMMANDS WINDOWS COMMANDS.

    When I say Terminal, I mean Command Prompt for you Window$ u$er$ (start-run-cmd)

    In terminal with your phone plugged into the computer


    A Logcat:

    Code:
    [COLOR=#ff0000][FONT=Arial][SIZE=3]adb logcat[/SIZE][/FONT][/COLOR]

    This doesn't START logcat, this tells terminal to grab the information already on the device logcat and display it in terminal. This isn't so useful to us. It just scrolls the information in terminal and you can read it there. This is kinda difficult to read though, for one it's constantly scrolling as your phone does things and two, it's likely that your terminal is configured to only allow a certain number of lines to be kept readable before they drop off.


    Pipe it to Desktop as a .txt file


    Code:
    [COLOR=#008000][FONT=Arial][SIZE=3]adb logcat > ~/Desktop/logcat.txt [/SIZE][/FONT][/COLOR]
    [COLOR=#0000ff][FONT=Arial][SIZE=3]adb logcat > %userprofile%\desktop\logcat.txt[/SIZE][/FONT][/COLOR]


    This command above will tell the logcat to export the terminal logcat to a .txt file on your desktop called logcat.txt The '>' symbol tells the logcat to pipe to the location listed. This will continue to update even if you open the text file, so long as you have terminal running. It's not done “live” though, you have to either refresh the file, or close it then re-open it. That won't affect anything other than giving you an update. Now we're getting somewhere, but where?


    Code:
    [COLOR=#ff0000][FONT=Arial][SIZE=3]adb logcat > /sdcard/logcat.txt[/SIZE][/FONT][/COLOR]


    If using Terminal Emulator on your phone instead of a computer setup, this (above) is the code you'd want to use. It will save the logcat.txt to the root of your SD card. Next!


    -v long, or not to -v long, that is the question!


    Code:
    [COLOR=#008000][FONT=Arial][SIZE=3]adb logcat -v long > ~/Desktop/logcat.txt[/SIZE][/FONT][/COLOR]
    [COLOR=#0000ff][FONT=Arial][SIZE=3]adb logcat -v long > %userprofile%\desktop\logcat.txt[/SIZE][/FONT][/COLOR]


    Now we're telling the logcat to do something more interesting. We are telling it to give us every scrap of information it has. This will space the logcat out nice and pretty and really make things easier to read as well, even giving time stamps of when everything happened! Now you can say “it happened at about 9:30 pm” and we can find that. Winning!
    Sometimes you want to filter down the information though. You want to make the dev's life easier. Here is how:

    First, a brief on Tags and Priorities.

    Tags are going to be what process is actually giving the information, for example 'ActivityManager', 'Database', and 'WindowsManager' are all Tags you can find. There are TONS of these suckers! Research into what your problem is and try to pick out the tag.

    Priorities are different. These will tell you how serious the issue at hand is. The priorities are called by their letter code and are:

    V Verbose
    D Debug
    I Info
    W Warning
    E Error
    F Fatal

    S Silent (suppress all output)

    These are in ascending order. In other words, Verbose or V is going to be the micro information which doesn't really mean much to anyone 99.99% of the time where as Fatal or F is going to be a huge catastrophic issue. When filtering for a Priority it will include the Priority you give PLUS all HIGHER Priorities. So, for example, if you call to filter for Warning or W then it will give you Warning, Error, and Fatal. That is common to filter for. Below are some examples of code:

    ( PS - you would never actually type or input ‘{‘ or ‘}’ in your logcat commands .. they are in some of the examples below to show you that these are generic modifiers … meaning - if you were actually inputting the command you would replace the {Tag} with an actual Tag, like: ActivityManager or GTalkService .. in the same way you would replace {Priority} with an actual Priority, such as: W or E )


    Examples


    Code:
    [COLOR=#008000][FONT=Arial][SIZE=3]adb logcat {Tag}:{Priority} *:S > ~/Desktop/logcat.txt[/SIZE][/FONT][/COLOR]
    [COLOR=#0000ff][FONT=Arial][SIZE=3]adb logcat {Tag}:{Priority} *:S > %userprofile%\desktop\logcat.txt[/SIZE][/FONT][/COLOR]


    The above line is if you know exactly what Tag (GTalkService or ActivityManager) and Priority (W or E) you are looking for.


    Code:
    [COLOR=#008000][FONT=Arial][SIZE=3]adb logcat *:{Priority} *:S > ~/Desktop/logcat.txt[/SIZE][/FONT][/COLOR]
    [COLOR=#0000ff][FONT=Arial][SIZE=3]adb logcat *:{Priority} *:S > %userprofile%\desktop\logcat.txt[/SIZE][/FONT][/COLOR]


    The above line is if you don't know the Tag, but know the Priority. The * is a wild card that basically means all/any. An example of a VERY valuable logcat could be:


    Code:
    [COLOR=#008000][FONT=Arial][SIZE=3]adb logcat *:W *:S > ~/Desktop/logcatALLwarnings.txt[/SIZE][/FONT][/COLOR]
    [COLOR=#0000ff][FONT=Arial][SIZE=3]adb logcat *:W *:S > %userprofile%\desktop\logcat.txt[/SIZE][/FONT][/COLOR]


    So, the command above would give you all tags that had a priority of Warning, Error, or Fatal. It would silence (not show) everything else and would pipe the output of your log to your desktop as a text file named logcatALLwarnings.txt … moving along …


    Code:
    [COLOR=#008000][FONT=Arial][SIZE=3]adb logcat {Tag}:V *:S > ~/Desktop/logcat.txt[/SIZE][/FONT][/COLOR]
    [COLOR=#0000ff][FONT=Arial][SIZE=3]adb logcat {Tag}:V *:S > %userprofile%\desktop\logcat.txt[/SIZE][/FONT][/COLOR]


    The above line is if you know the Tag but want to see all Priorities. {Tag}:V outputs all priorities for the specific Tag you’ve entered because it calls for the V (Verbose) priority, which is the very lowest priority … and as you recall, it always gives you the priority you’ve asked for AND above.

    The *:S tells the logcat to Silence (or ignore) all lines/messages that have not otherwise been specifically called for using these filter expressions. This CAN cause issues though, sometimes it will silence what you're looking for / everything.

    A final specific example from my phone to be clear. I got a Database Tag with an Info Priority, if I wanted to see all instances of this happening, I could use the following code:


    Code:
    [COLOR=#008000][FONT=Arial][SIZE=3]adb logcat Database:I *:S > ~/Desktop/logcat.txt[/SIZE][/FONT][/COLOR]
    [COLOR=#0000ff][FONT=Arial][SIZE=3]adb logcat Database:I *:S > %userprofile%\desktop\logcat.txt[/SIZE][/FONT][/COLOR]


    Or, if I had an ActivityManager Warning I could use


    Code:
    [COLOR=#008000][FONT=Arial][SIZE=3]adb logcat ActivityManager:W *:S > ~/Desktop/logcat.txt[/SIZE][/FONT][/COLOR]
    [COLOR=#0000ff][FONT=Arial][SIZE=3]adb logcat ActivityManager:W *:S > %userprofile%\desktop\logcat.txt[/SIZE][/FONT][/COLOR]


    Ok, now we're going to the show! You know the tools, but how do I use them? Glad you asked!

    For the first time you boot a ROM/Kernel bundled together (IE InsomMIUI 1.12.2) or for just a kernel you're going to do the following:

    Once you're finished full wiping and installing the ROM, but haven't rebooted the phone yet. (Or wiping just the caches for a separate Kernel):

    • Open Terminal on your computer
    • enter the following code
    Code:
    [COLOR=#008000][FONT=Arial][SIZE=3]adb logcat -v long > ~/Desktop/logcat.txt[/SIZE][/FONT][/COLOR][COLOR=#0000ff]
    [/COLOR][COLOR=#0000ff][FONT=Arial][SIZE=3]adb logcat -v long > %userprofile%\desktop\logcat.txt[/SIZE][/FONT][/COLOR]



    • Name the logcat something useful. A good format is to use you're initials, rom name, what it is, and date. This way it stands out. So the code with the really long but helpful file name would be:
    Code:
    [COLOR=#008000][FONT=Arial][SIZE=3]adb logcat -v long > ~/Desktop/JH_InsomMIUI1122_firstboot_5Dect11.txt[/SIZE][/FONT][/COLOR]
    [COLOR=#0000ff][FONT=Arial][SIZE=3]adb logcat -v long > %userprofile%\desktop\JH_InsomMIUI1122_firstboot_5Dect11.txt[/SIZE][/FONT][/COLOR]


    • Yes, I know that's a long name, but we look at dozens of these things, it helps!
      • In recovery tell it to reboot the phone. The logcat will start recording internally on your device at boot automatically.
      • Once the phone is at the lockscreen let it sit for 5 minutes.
      • Unlock the phone and let it sit for about 10 seconds.
      • Restart the phone.
      • Once you restart the phone open the logcat file on your desktop to make sure it’s not blank/empty/something went wrong and if everything’s golden - send to your favorite developer (ME! :D ).


    • FYI , the -v option sets the output format. -v long after the logcat command formats the log so that it adds a date and time stamp to each line. It also separates each line with a blank line .. making the log as a whole much easier to look through.


    • That's it, you should be off to the races with these logcats. I hope this has helped!
    6
    Good post m8 :D
    One minor criticism, not just of this post but many "How to's" on this forum.

    A clear description of what a logcat is and how it maybe useful would go a long way to help educate the inexperienced.
    I only say this as i have non techy friends who constantly complain about this issue.
    They go looking for info to sort their own issues out and are confronted with jargon on jargon on jargon ..... with no 'Plain English explanation"
    We should all try to remember not everyone possesses the same tech knowledge, and we all where N00bs once we only ascended to being the godlike superusers we are due to others making knowledge clearly available to us.
    Th idea that "if you don't understand then this isn't for you" is pretty narrow and arrogant.
    2
    When I run logcat on my phone, using the command

    Code:
    adb logcat -v long > /sdcard/logcat.txt


    the next line display is

    Code:
    - waiting for device -


    and then does nothing. What am I doing wrong?

    Seems I need to fix it. For doing this on the phone you should enter 'su' to gain superuser than type "logcat..." and whatever. It reads logcat directly, not through adb. Sorry about missing your reply earlier. Hope this helps. :)

    Sent from my HTC Glacier using Tapatalk 2
    1
    Wow this is great I hope People make use of this.
    1
    When I run logcat on my phone, using the command

    Code:
    adb logcat -v long > /sdcard/logcat.txt


    the next line display is

    Code:
    - waiting for device -


    and then does nothing. What am I doing wrong?