• Android开发中的logcat工具使用


    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。

  • 相关阅读:
    VC++文件操作之最全篇
    MFC六大核心机制之五、六:消息映射和命令传递
    MFC六大核心机制之四:永久保存(串行化)
    MFC六大核心机制之三:动态创建
    MFC六大核心机制之二:运行时类型识别(RTTI)
    MFC六大核心机制之一:MFC程序的初始化
    VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)
    VS2010/MFC编程入门之五十三(Ribbon界面开发:为Ribbon Bar添加控件)
    java并发系列(四)-----源码角度彻底理解ReentrantLock(重入锁)、AQS
    java并发系列(三)-----ReentrantLock(重入锁)功能详解和应用演示
  • 原文地址:https://www.cnblogs.com/xj626852095/p/3647981.html
Copyright © 2020-2023  润新知