http://os.51cto.com/art/200905/126051.htm

用adb直接查看log:    adb logcat

清除之前的log: adb logcat -c

加过滤查看log(查看错误信息,异常就在这里):  adb logcat -s *:E  

将log输出到sdcard:  adb logcat -f /sdcard/xxx.log

logcat是Android中一个命令行工具,可以用于得到程序的log信息。

logcat使用方法如下所示:

logcat [options] [filterspecs]

logcat的选项包括:

-s 设置过滤器,例如指定 "*:s"

-f <filename> 输出到文件,默认情况是标准输出。

-r [<kbytes>] Rotate log every kbytes. (16 ifunspecified).Requires -f

-n <count> Sets max number of rotated logs to<count>,default 4

-v <format> 设置log的打印格式, <format> 是下面的一种:

brief process tag thread raw time threadtime long

-c 清除所有log并退出

-d 得到所有log并退出 (不阻塞)

-g 得到环形缓冲区的大小并退出

-b <buffer> 请求不同的环形缓冲区 ("main" (默认), "radio", "events")

-B 输出log到二进制中。

过滤器的格式是一个这样的串:

<tag>[:priority]

其中 <tag> 表示log的component, tag (或者使用 * 表示所有) ,priority如下所示:

V Verbose

D Debug

I Info

W Warn

E Error

F Fatal

S Silent

事实上logcat的功能是由Android的类android.util.Log决定的,在程序中log的使用方法如下所示:

Log.v() VERBOSE

Log.d() DEBUG

Log.i() INFO

Log.w() WARN

Log.e() ERROR

以上log的级别依次升高,DEBUG信息应当只存在于开发中,INFO,WARN,ERROR这三种log将出现在发布版本中。

对于JAVA类,可以声明一个字符串常量TAG,Logcat可以根据他来区分不同的log,例如在计算器(Calculator)的类中,定义如下所示:

public class Calculator extends Activity

/* ...... */

private static final String LOG_TAG = "Calculator";

private static final boolean DEBUG = false;

private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD:Config.LOGV;

/* ...... */

由此,所有在Calculator中使用的log,均以"Calculator"为开头。

例如使用方法如下所示:

# logcat &

< 得到一个log片段 >

W/KeyCharacterMap( 130): No keyboard for id 0

W/KeyCharacterMap( 130): Using defaultkeymap:/system/usr/keychars/qwerty.kcm.bin

I/ActivityManager( 52): Displayedactivitycom.android.contacts/.DialtactsContactsEntryActivity: 983ms

I/ARMAssembler( 52):generatedscanline__00000077:03545404_00000A04_00000000 [ 29 ipp](51 ins) at[0x25c978:0x25ca44] in 1764174 ns

I/ARMAssembler( 52):generatedscanline__00000077:03515104_00000001_00000000 [ 46 ipp](65 ins) at[0x25d1c8:0x25d2cc] in 776789 ns

D/dalvikvm( 130): GC freed 834 ts / 81760 bytes in 63ms

D/dalvikvm( 52): GC freed 10588 ts / 425776 bytes in 94ms

其中W/I/D表示log的级别,“dalvikvm”“ARMAssembler”等是不同组件(component)的名称,后面括号里面的数字表示了发出log的进程号。

使用技巧:

1.使用logcat &在后台运行

2.使用-d得到所有log

3.使用-f或者重定向(>和>>)输出到文件

4.使用-s设置过滤器,得到想要的log。

当然,最重要的还是在程序中加入恰当的log。

Android开发中的logcat工具使用的更多相关文章

  1. 如何解决android logcat不打印信息在android开发中

    用eclipse进行android开发中经常遇到logcat无任何信息输出,这给我们调试程序带来很大的不便.解决办法:window-->show view-->选择android下的dev ...

  2. Android开发中,那些让您觉得相见恨晚的方法、类或接口

    Android开发中,那些让你觉得相见恨晚的方法.类或接口本篇文章内容提取自知乎Android开发中,有哪些让你觉得相见恨晚的方法.类或接口?,其实有一部是JAVA的,但是在android开发中也算常 ...

  3. Android源码浅析(四)——我在Android开发中常用到的adb命令,Linux命令,源码编译命令

    Android源码浅析(四)--我在Android开发中常用到的adb命令,Linux命令,源码编译命令 我自己平时开发的时候积累的一些命令,希望对你有所帮助 adb是什么?: adb的全称为Andr ...

  4. Android开发专业名词及工具概述

    前言: 系统的学习下Android开发中涉及到的一些专业名词 和Android开发工具 名词: 一.SDK(Software Development Kit) 软件开发工具包:一般都是一些软件工程师为 ...

  5. 在android开发中使用multdex的方法-IT蓝豹为你整理

    Android系统在安装应用时,往往需要优化Dex,而由于处理工具DexOpt对id数目的限制,导致其处理的数目不能超过65536个,因此在Android开发中,需要使用到MultiDex来解决这个问 ...

  6. 怎样实现了捕获应用中的日志在android开发中

    怎样实现了捕获应用中的日志在android开发中,大家可研究一下. Process mLogcatProc = null; BufferedReader reader = null; try { mL ...

  7. Android开发中Eclispe相关问题及相应解决(持续更新)

    1.Eclipse项目中的Android Private Libraries没有自动生成. 一般而言,在Android开发中,项目中引用到的jar包会放到项目目录中的libs中,引入库会放到Andro ...

  8. 关于Android开发中的证书和密钥等问题

    关于Android开发中的证书和密钥等问题 引言 除了Android发布应用签名时需要用到证书外,在进行google Map Api开发和Facebook SDK API开发等时都需要申请API Ke ...

  9. Android开发中常见的设计模式

    对于开发人员来说,设计模式有时候就是一道坎,但是设计模式又非常有用,过了这道坎,它可以让你水平提高一个档次.而在android开发中,必要的了解一些设计模式又是非常有必要的.对于想系统的学习设计模式的 ...

随机推荐

  1. iOS UITextView 展示html

    NSString *htmlString = @"<h1>Header</h1><h2>Subheader</h2><p>Some ...

  2. Xcode删除Project上层group

    本来想在Project下New Group,结果点了New group from selection, 结果在Project上级新建了一个group,邮件菜单中无删除项…… 解决方法: 1,关闭Xco ...

  3. 延迟任务和循环任务ScheduledExecutorService

    public class ScheduledThreadPool { public static ScheduledExecutorService scheduledThreadPool = Exec ...

  4. json字符串和json对象的转换

    http://www.json.org/提供了一个json2.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法: parse用于从一个 ...

  5. 学习使用turtlebot2——调试Hokuyo激光雷达(型号UST-10LX)

    目标 在ROS上调试使用Hokuyo激光雷达传感器 配置情况     电脑使用Ubuntu 14.04版本,ROS为 Indigo,激光雷达为Hokuyo(型号UST-10LX,网口型接口)   如果 ...

  6. Storm-源码分析汇总

    Storm Features Storm 简介 Storm Topology的并发度 Storm - Guaranteeing message processing Storm - Transacti ...

  7. <2014 03 18> Term BreakPoint

  8. XML 解析之 jaxp 解析器

    XML 的解析方式有两种方式: DOM 解析和 SAX 解析. DOM 解析: 根据 XML 的层级结构, 在内存中分配一个树形结构, 把 XML 的标签, 属性和文本都封装成对象. 优点: 可以实现 ...

  9. Python获取指定路径下所有文件的绝对路径

    需求 给出制定目录(路径),获取该目录下所有文件的绝对路径: 实现 方式一: import os def get_file_path_by_name(file_dir): ''' 获取指定路径下所有文 ...

  10. 采集baidu搜索信息的java源代码实现(大部分转发,少量自己修改)(使用了htmlunit和Jsoup)(转发:https://blog.csdn.net/zhaohang_1/article/details/44731039)

    1.maven依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...