`

logcat日志

 
阅读更多

Android日志系统提供了记录和查看系统调试信息的功能。日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来查看和使用.

使用logcat命令

你可以用logcat命令来查看系统日志缓冲区的内容:

[adb] logcat [<option>] ... [<filter-spec>] ...

请查看Listing of logcat Command Options,它对logcat命令有详细的描述 .

你也可以在你的电脑或运行在模拟器/设备上的远程adb shell端来使用logcat命令,也可以在你的电脑上查看日志输出。

$ adb logcat

你也这样使用:

# logcat

过滤日志输出

每一个输出的Android日志信息都有一个标签和它的优先级.

  • 日志的标签是系统部件原始信息的一个简要的标志。(比如:“View”就是查看系统的标签).
  • 优先级有下列集中,是按照从低到高顺利排列的:
    • V— Verbose (lowest priority)
    • D— Debug
    • I— Info
    • W— Warning
    • E— Error
    • F— Fatal
    • S— Silent (highest priority, on which nothing is ever printed)

在运行logcat的时候在前两列的信息中你就可以看到logcat的标签列表和优先级别,它是这样标出的:<priority>/<tag>.

下面是一个logcat输出的例子,它的优先级就似乎I,标签就是ActivityManage:

I/ActivityManager(  585): Starting activity: Intent { action=android.intent.action...}

为了让日志输出能体现管理的级别,你还可以用过滤器来控制日志输出,过滤器可以帮助你描述系统的标签等级.

过滤器语句按照下面的格式描tag:priority ...,tag表示是标签,priority是表示标签的报告的最低等级. 从上面的tag的中可以得到日志的优先级. 你可以在过滤器中多次写tag:priority.

这些说明都只到空白结束。下面有一个列子,例子表示支持所有的日志信息,除了那些标签为”ActivityManager”和优先级为”Info”以上的和标签为” MyApp”和优先级为” Debug”以上的。 小等级,优先权报告为tag.

adb logcat ActivityManager:I MyApp:D *:S

上面表达式的最后的元素*:S,,是设置所有的标签为"silent",所有日志只显示有"View" and "MyApp"的,用*:S的另一个用处是 能够确保日志输出的时候是按照过滤器的说明限制的,也让过滤器也作为一项输出到日志中.

下面的过滤语句指显示优先级为warning或更高的日志信息:

adb logcat *:W

如果你电脑上运行logcat,相比在远程adbshell端,你还可以为环境变量ANDROID_LOG_TAGS:输入一个参数来设置默认的过滤

export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"

需要注意的是ANDROID_LOG_TAGS过滤器如果通过远程shell运行logcat或用adb shell logcat来运行模拟器/设备不能输出日志.

控制日志输出格式

日志信息包括了许多元数据域包括标签和优先级。可以修改日志的输出格式,所以可以显示出特定的元数据域。可以通过-v选项得到格式化输出日志的相关信息.

  • brief— Display priority/tag and PID of originating process (the default format).
  • process— Display PID only.
  • tag— Display the priority/tag only.
  • thread— Display process:thread and priority/tag only.
  • raw— Display the raw log message, with no other metadata fields.
  • time— Display the date, invocation time, priority/tag, and PID of the originating process.
  • long— Display all metadata fields and separate messages with a blank lines.

当启动了logcat,你可以通过-v选项来指定输出格式:

[adb] logcat [-v <format>]

下面是用thread来产生的日志格式:

adb logcat -v thread

需要注意的是你只能-v选项来规定输出格式 option.

查看可用日志缓冲区

Android日志系统有循环缓冲区,并不是所有的日志系统都有默认循环缓冲区。为了得到日志信息,你需要通过-b选项来启动logcat。如果要使用循环缓冲区,你需要查看剩余的循环缓冲期:

  • radio— 查看缓冲区的相关的信息.
  • events— 查看和事件相关的的缓冲区.
  • main— 查看主要的日志缓冲区

-b选项使用方法:

[adb] logcat [-b <buffer>]

下面的例子表示怎么查看日志缓冲区包含radio 和 telephony信息:

adb logcat -b radio

查看stdout 和stderr

在默认状态下,Android系统有stdoutstderr(System.outSystem.err)输出到/dev/null,在运行Dalvik VM的进程中,有一个系统可以备份日志文件。在这种情况下,系统会用stdoutstderr和优先级 I.来记录日志信息

通过这种方法指定输出的路径,停止运行的模拟器/设备,然后通过用setprop命令远程输入日志

$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start

系统直到你关闭模拟器/设备前设置会一直保留,可以通过添加/data/local.prop可以使用模拟器/设备上的默认设置

Logcat命令列表

Option Description
-b<buffer> 加载一个可使用的日志缓冲区供查看,比如eventradio. 默认值是main。具体查看Viewing Alternative Log Buffers.
-c 清楚屏幕上的日志.
-d 输出日志到屏幕上.
-f<filename> 指定输出日志信息的<filename>,默认是stdout.
-g 输出指定的日志缓冲区,输出后退出.
-n<count> 设置日志的最大数目<count>.,默认值是4,需要和-r选项一起使用。
-r<kbytes> <kbytes>时输出日志,默认值为16,需要和-f选项一起使用.
-s 设置默认的过滤级别为silent.
-v<format> 设置日志输入格式,默认的是brief格式,要知道更多的支持的格式,参看Controlling Log Output Format.

分享到:
评论

相关推荐

    Android软件开发之程序中时时获取logcat日志信息

    开发者可以通过查看logcat日志来追踪错误、定位问题或者了解程序运行状态。本文将详细探讨如何在程序中实时获取logcat日志信息。 首先,理解logcat的基本概念是至关重要的。Logcat是一个循环缓冲日志,存储着应用...

    在Android界面上显示和获取Logcat日志输出

    本篇文章将详细介绍如何在Android界面上显示和获取Logcat日志输出。 首先,理解Logcat中的日志级别至关重要。Logcat支持五种日志级别,按照严重性从低到高依次为:VERBOSE(详细)、DEBUG(调试)、INFO(信息)、...

    Android-将logcat日志存储到文件中日志量较大的情况下方便查看

    当遇到复杂的问题或者需要长时间监控应用状态时,将logcat日志保存到文件中尤其有用。本文将详细介绍如何在日志量较大时,将logcat日志存储到文件,并便于后续分析。 首先,我们需要理解logcat的基本概念。logcat是...

    解决华为系列手机调试时不能打印Logcat日志信息

    ### 解决华为系列手机调试时不能打印Logcat日志信息 在进行Android应用开发的过程中,开发者经常需要通过Logcat(Log Catcher)工具来获取应用运行时的日志信息,这对于定位问题、调试程序有着至关重要的作用。然而...

    Android studio保存logcat日志到本地的操作

    "Android Studio保存Logcat日志到本地的操作" Android Studio是Android应用程序开发的集成开发环境(IDE),它提供了许多实用的功能来帮助开发者快速开发和调试 Android 应用程序。其中,Logcat是Android系统中的一...

    Catdea,catdea intellij idea(android studio)插件旨在将android logcat日志条目与发出它们的源代码相匹配.zip

    Catdea是一款专为IntelliJ IDEA(包括Android Studio)设计的插件,它的核心功能是将Logcat日志条目与相应的源代码进行智能匹配,从而极大地提升了调试效率。 1. **Catdea插件介绍** Catdea是由热心开发者贡献的...

    解决Android Studio突然不显示logcat日志的问题

    前言:上午写代码时还好好的,下午不知道怎么回事突然就不显示logcat日志了,觉得很奇怪,于是开始找各种解决办法! 现象如图所示,logcat无日志显示: 首先,你可以试试修改以下参数: 2.若修改上述参数依然不...

    logcatviewer,Logcat查看器.zip

    通过adb命令行工具,开发者可以远程获取设备或模拟器上的Logcat日志,但这种方式操作相对繁琐。 二、logcatviewer项目简介 logcatviewer是专门为Android开发者设计的一个开源日志查看器,它提供了一个图形化的用户...

    JavaScript应用实例-抓取logcat日志.js

    JavaScript应用实例-抓取logcat日志.js

    Android开发之在程序中时时获取logcat日志信息的方法(附demo源码下载)

    本文将深入探讨如何在程序中实时获取logcat日志信息,并通过实例分析其原理、步骤和实现技巧。 首先,我们需要了解logcat的基本概念。在Android中,logcat提供了五个级别的日志过滤器,分别是VERBOSE、DEBUG、INFO...

    AutoJs源码-抓取logcat日志

    AutoJs源码-抓取logcat日志。本资源购买前提醒:本源码都是实际autojs项目模板,安装好autojs直接运行即可打开。1、支持低版本autojs。2、资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担...

    通过包名获取进行的所有logcat日志

    仅支持mac osx,Linux还未测试。暂不支持Windows。 shell脚本,输入参数【包名】,可以获取当前应用的全部日志。该应用有多个进程, 也支持获取。

    android logcat日志查看器源码

    adb logcat查看日志工具,注意:必须有root权限才能查看完整logcat信息。详细介绍请点击http://developer.t-firefly.com/forum.php?mod=viewthread&tid=202&page=1&extra=#pid369

    在Android界面上显示和获取Logcat日志输出的方法

    Android 中显示和获取 Logcat 日志输出的方法 Android 开发中,Logcat 日志输出是非常重要的一部分,它可以帮助开发者调试和优化应用程序。在 Android 中,获取 Logcat 日志输出的方法有很多,本文将介绍其中的一种...

    使用matlab函数批量提取adb logcat日志的数据

    我们在手机调试中通常会需要通过adb命令来读取手机的日志信息 例如使用adb logcat 但是读取log后,log文本中除了期望的数据,还有其他很多数据,为了有针对性的将期望数据筛选出来如电池电压,温度,电量等信息,...

    ADB logcat 查询工具

    在Android应用开发过程中,logcat是ADB中的一个关键组件,用于收集设备上运行的应用程序产生的系统日志。通过使用ADB logcat,开发者可以查看、过滤和分析这些日志,从而诊断错误、调试代码和优化性能。 标题提到的...

    shell 脚本抓取android logcat和kernel log,以及删除旧的log

    在Android系统中,logcat和kernel log是两个重要的日志系统,它们记录了系统的运行状态、错误信息和其他调试数据。shell脚本则是Linux/Android环境中进行自动化任务的强大工具。本篇将详细介绍如何利用shell脚本来...

Global site tag (gtag.js) - Google Analytics