What is LogCat and how to use it? How to remove logcat in various ways and applications adb logcat [<Keys>] [<filter>] View logs with debug information:
You can use the logcat command from a development machine.
$ adb logcat
or from remote shell
# logcat Each log message in Android has a tag and priority
The tag is a string indicating the system component from which the message was received (for example: View for the view system)
Priority - has one of the following values ​​(in order from lowest to highest):
V - Verbose (Low priority).
D - Debug
I - Info
W - Warning
E - Error
F - Fatal
S - Silent (The highest priority at which nothing is output).
Get a list of tags used in the system, along with their priorities, you can run logcat. The first two columns of each displayed message will be listed.<a priority>/<tag>.
An example of the displayed logcat message:
I / ActivityManager (585): Starting activity: Intent {action = android.intent.action ...}
To reduce log output to an acceptable level, filter expressions should be used. Filter expressions allow the system to specify the desired combinations.<tag>and<a priority>, the remaining messages are not displayed by the system.
Filter expressions have the following format.<tag>:<a priority>... where<tag>indicates the desired tag,<a priority>indicates the minimum priority level for the selected tag. Messages with the selected tag and priority at or above the specified level are recorded in the log. Any number of pairs can be used.<tag>:<a priority>in one filter expression. To separate pairs<tag>:<a priority>space is used.
The example below logs all messages with an "ActivityManager" tag with a priority of "Info" or higher, and messages with a "MyApp" tag and a priority of "Debug" or higher:
adb logcat ActivityManager: I MyApp: D *: S
The last element in the filter expression *: S sets the priority "silent" for all other tags, thereby ensuring the display of messages only for "View" and "MyApp". Using *: S is a great way to log only explicitly specified filters (that is, the white list of messages is indicated in the filter expression, and *: S sends everything else to the black list).
The following filter expression displays all messages with a priority of "warning" or higher for all tags:
adb logcat *: W
If logcat runs on the developer’s machine (not via the remote adb shell), you can also set the value of the default filter expression by setting the ANDROID_LOG_TAGS environment variable:
export ANDROID_LOG_TAGS = "ActivityManager: I MyApp: D *: S"
Please note that specifying the ANDROID_LOG_TAGS environment variable will not work in the emulator / device if you use logcat in a remote shell or using adb shell logcat.
The export command described above works in OS * nix and does not work in Windows.
Monitoring Log Output Format
Log messages in addition to tag and priority contain several metadata fields. You can change the message output format showing only specific metadata fields. To do this, use the -v option and specify one of the following output formats.
briefShow priority / tag and process PID (default format).
processOnly show PID.
tagOnly show priority / tag.
threadShow only process: thread and priority / tag.
rawShow unprocessed message, without metadata fields.
timeShow date, call time, priority / tag and process PID.
longShow all metadata fields and separate messages with empty lines.
When running
logcatYou can specify the output format using the -v parameter:
adb logcat [-v<format>] An example that shows messages in the thread format:
adb logcat -v threadIt should be noted that only one format can be used with the -v option.
View alternate log buffer
The Android logging system holds several ring buffers for the message log and not all messages are sent to the main buffer. To display additional log messages, you need to run logcat with the -b parameter.
Thus you can see one of the alternative buffers:
radio View radio / phone related buffer.
events View a buffer with event related messages.
main View the main buffer (default).
The example below shows a buffer with radio and telephone messages:
adb logcat -b radioView stdout and stderr
By default, the Android system sends the output of stdout and stderr (System.out and System.err) to / dev / null (deletes). In processes that run on a Dalvik virtual machine (Dalvik VM), a copy of the output to the log file can be written. In this case, the system writes messages to the log using the stdout and stderr tags with priority I.
To redirect output, you need to stop the emulator / device, then execute the shell setprop command to enable output redirection. An example of how this is done:
$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell startThe system saves this setting while the emulator / device is running. To use this default setting in the emulator / device, you need to add this command to
/data/local.propin the emulator / device.
List of logcat command options
-b<buffer>Load an alternate log buffer for viewing, such as event or radio. The main buffer is used by default.
-c Clear (reset) the log and exit.
-d Display the log and exit.
-f<filename>Write log messages to file<filename>. The default is stdout.
-g Display the size of the specified log buffer and exit.
-n<count>Set the maximum number of log rotations (the number of stored compressed log fragments)<count>. The default is 4. Requires the -r option.
-r<kbytes>Perform rotation every<kbytes>output (split the log into fragments by<kbytes>). The default is 16. Requires the -f option.
-s Set the default silent filter.
-v<format>Sets the format for displaying log messages. The default is brief.