`

Android开发系列:查看LogCat日志

 
阅读更多

 

 

 

LogCat日志

1. Window > Customize Perspective

2. 选择Shortcuts 标签

3. 在Submenus 选择Show View

4. 在Shortcut Categories选择Android

5. 在右边勾上 LogCat,然后确定。

6. Window > Show View > LogCat 就可以打开LogCat View

二 Log方法:
android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,DEBUG,INFO, WARN,ERROR。

1、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("","");

2、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择.

3、Log.i的输出为绿色,一般提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息

4、Log.w的意思为橙色,可以看作为warning警告,一般需要我们注意优化Android代码,同时选择它后还会输出Log.e的信息。

5、Log.e为红色,可以想到error错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息了。

三 adb Log过滤:

1. 只显示需要的输出,白名单
最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配。简单的匹配一行当中的某个字符串,例如 MyApp:
adb logcat | grep MyApp
adb logcat | grep -i myapp #忽略大小写。

2 保存log
使用-d参数,可以在读完所有log后返回,而不会一直等待,在自动化较有用。例如:
adb logcat -d -s xxx > xxx.log //得到filter为xxx的日志,存入xxx.log,然后返回。

3.

adb forward tcp:6100 tcp:7100// PC上所有6100端口通信数据将被重定向到手机端7100端口server上

 

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系统有stdout 和 stderr (System.out 和System.err )输出到/dev/null ,在运行Dalvik VM的进程中,有一个系统可以备份日志文件。在这种情况下,系统会用stdout 和stderr 和优先级 I.来记录日志信息

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

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

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

Logcat命令列表

 

Option Description
-b <buffer> 加载一个可使用的日志缓冲区供查看,比如event 和radio . 默认值是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 .



 

  • 大小: 7.8 KB
0
0
分享到:
评论

相关推荐

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

    总结起来,实时获取logcat日志信息是Android开发中的一个重要技能,这需要理解和利用`android.util.Log`类以及Android系统的shell命令。通过自定义日志标签、设置日志级别,开发者可以更有效地进行问题排查和性能...

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

    在Android开发过程中,Logcat是调试应用程序不可或缺的工具。它是一个内置的日志系统,用于记录应用程序和系统服务的输出信息。Logcat收集所有应用程序和系统的日志消息,并将其存储在一个缓冲区中,开发者可以通过...

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

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

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

    总结来说,将logcat日志存储到文件是Android开发中常用的方法,特别是在处理大量日志时。通过编写辅助类或使用adb命令,我们可以方便地保存日志并进行后续分析。同时,合理使用日志级别和过滤条件,可以提高排查问题...

    Android-Android日志工具支持Logcat输出和文件记录

    在Android开发过程中,日志工具是开发者不可或缺的调试利器。Android系统自带的日志系统Logcat,可以输出应用程序运行过程中的各种信息,包括错误、警告、信息等不同级别的日志。然而,仅依赖Logcat有时并不能满足...

    Android-LogCat-tool.zip_-baijiahao_android logcattool_logcat_log

    在Android开发中,LogCat是不可或缺的调试利器,它是一个内置的命令行工具,用于收集和显示Android设备或模拟器上的系统日志信息。通过对应用程序、系统服务以及框架组件的日志输出进行监控,开发者可以获取到运行时...

    让android的LogCat支持中文输出

    在Android开发过程中,LogCat是调试应用程序的重要工具,它能够帮助开发者查看运行时的日志信息。然而,默认情况下,LogCat不支持中文输出,这给处理包含中文信息的log带来了一定困扰。这篇博客将探讨如何使Android...

    安卓logcat输出内核日志android studio工程源码

    本文将深入探讨如何使用"安卓logcat输出内核日志android studio工程源码"来收集和分析内核日志信息。我们将讨论以下几个核心知识点: 1. **logcat工具**:logcat是Android系统内置的一个命令行工具,用于捕获和显示...

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

    总的来说,Catdea插件是Android开发者的一大福音,它使Logcat日志分析变得更加智能化,大大提高了开发和调试的效率。如果你是Android Studio的用户,不妨尝试一下这个强大的插件,相信它会给你的工作带来极大的便利...

    Android手机WiFi调试,查看logcat

    在Android开发过程中,调试是必不可少的一环,尤其是当涉及到网络通信问题时,WiFi调试和查看logcat日志显得尤为重要。本文将深入探讨如何利用WiFi进行Android设备的远程调试,并介绍如何查看并理解logcat日志。 ...

    Android-LogcatView一款可以在手机中打开logcat控制台

    在Android应用开发中,日志(Logcat)是一个至关重要的工具,它允许开发者查看应用程序运行时的输出信息,包括错误、警告、调试信息等。通常,开发者会在计算机上的Android Studio或其他IDE中使用Logcat来追踪程序的...

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

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

    Android Logcat 的使用

    在Android开发过程中,Logcat是一个至关重要的工具,它用于收集应用程序和系统服务的日志消息。Logcat可以帮助开发者追踪错误、调试代码以及理解应用程序在运行时的行为。本文将深入探讨Logcat的基本概念、如何使用...

    logcatviewer,Logcat查看器.zip

    在Android开发过程中,日志系统扮演着至关重要的角色,它能够帮助开发者追踪应用运行时的状态,定位并解决出现的问题。Logcat是Android系统提供的一个用于查看系统日志的工具,而logcatviewer则是其图形化界面的实现...

    Android开发中LogCat工具的使用(Word格式)

    LogCat是Android开发中的一个重要工具,它用于收集和查看应用程序及系统组件的日志信息,帮助开发者诊断和调试问题。在Android开发过程中,LogCat能够提供关键的反馈,尤其是在测试和优化代码时。以下是对LogCat工具...

    Logcat:Android 日志打印框架,在手机上可以直接看到 Logcat 日志啦

    日志调试框架 码云地址: 集成步骤 buildscript { ...... } allprojects { repositories { // JitPack 远程仓库:https://jitpack.io maven { url 'https://jitpack.io' } } } 在项目 app 模块下的 build....

    Android-OkHttp的请求拦截器实现请求拦截打印日志到logcat

    在Android开发中,网络编程是不可或缺的一部分,而OkHttp作为一款高效的HTTP客户端库,被广泛应用于Android应用中。本文将详细讲解如何利用OkHttp的请求拦截器(Interceptor)实现请求的拦截并打印日志到logcat,这...

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

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

    Android Logcat 抓取调试工具

    通常,开发者使用Eclipse或Android Studio这样的集成开发环境(IDE)来方便地查看和分析Logcat日志。然而,如果你不想依赖这些大型IDE或者更喜欢命令行之外的解决方案,有一些独立的工具可以实现相同功能,例如...

Global site tag (gtag.js) - Google Analytics