zoukankan      html  css  js  c++  java
  • logcat调试系统

    日志存放位置:/dev/log

    shell@xxx:/ $ ls /dev/log -l
    crw-rw-rw- root     log       10,  48 2011-01-01 12:04 events
    crw-rw-rw- root     log       10,  49 2011-01-01 12:04 main
    crw-rw-rw- root     log       10,  47 2011-01-01 12:04 radio
    crw-rw-rw- root     log       10,  46 2011-01-01 12:04 system

    提示信息的格式:等级/标签 (pid):日志内容

    E/NetworkController(  934): onReceive ETHERNET_STATE_CHANGED_ACTION 

    等级

    V:Verbose
    D: Debug
    I: Info
    W: Warn
    E: Error
    F: Fatal
    S: Silent (supress all output)

    标签:用来区分不同的调试信息,必须唯一。

    logcat命令

    shell@xxx:/ $ logcat --help 
    Usage: logcat [options] [filterspecs]
    options include:
      -s              Set default filter to silent.
                      Like specifying filterspec '*:s'
      -f <filename>   Log to file. Default to stdout
      -r [<kbytes>]   Rotate log every kbytes. (16 if unspecified). Requires -f
      -n <count>      Sets max number of rotated logs to <count>, default 4
      -v <format>     Sets the log print format, where <format> is one of:
    
                      brief process tag thread raw time threadtime long
    
      -c              clear (flush) the entire log and exit
      -d              dump the log and then exit (don't block)
      -t <count>      print only the most recent <count> lines (implies -d)
      -t '<time>'     print most recent lines since specified time (implies -d)
      -T <count>      print only the most recent <count> lines (does not imply -d)
      -T '<time>'     print most recent lines since specified time (not imply -d)
                      count is pure numerical, time is 'MM-DD hh:mm:ss.mmm'
      -g              get the size of the log's ring buffer and exit
      -b <buffer>     Request alternate ring buffer, 'main', 'system', 'radio',
                      'events', 'crash' or 'all'. Multiple -b parameters are
                      allowed and results are interleaved. The default is
                      -b main -b system -b crash.
      -B              output the log in binary.
      -S              output statistics.
      -G <size>       set size of log ring buffer, may suffix with K or M.
      -p              print prune white and ~black list. Service is specified as
                      UID, UID/PID or /PID. Weighed for quicker pruning if prefix
                      with ~, otherwise weighed for longevity if unadorned. All
                      other pruning activity is oldest first. Special case ~!
                      represents an automatic quicker pruning for the noisiest
                      UID as determined by the current statistics.
      -P '<list> ...' set prune white and ~black list, using same format as
                      printed above. Must be quoted.
    
    filterspecs are a series of 
      <tag>[:priority]
    
    where <tag> is a log component tag (or * for all) and priority is:
      V    Verbose
      D    Debug
      I    Info
      W    Warn
      E    Error
      F    Fatal
      S    Silent (supress all output)
    
    '*' means '*:d' and <tag> by itself means <tag>:v
    
    If not specified on the commandline, filterspec is set from ANDROID_LOG_TAGS.
    If no filterspec is found, filter defaults to '*:I'
    
    If not specified with -v, format is set from ANDROID_PRINTF_LOG
    or defaults to "brief"

    用法:logcat   [选项]   [过滤规则]

    -s:过滤,输出指定标签的信息

    // 打印标签为"NetworkController"的所有日志
    shell@xxx:/ $ logcat -s "NetworkController"
    // 打印标签为"NetworkController",并且等级为 D 的日志
    shell@xxx:/ $ logcat -s "NetworkController:D"

    -f <filename>:日志输出到文件,默认到标准输出

    shell@xxx:/ # logcat -f /data/local/tmp/log.txt

    -v <format>:设置日志的打印格式,format只能取下面中的一个,brief / process / tag / thread / raw / time / threadtime / long

    brief:显示等级、标签、pid和消息,是默认格式

    process:显示等级、pid和消息

    tag:显示等级、标签和消息

    thread:显示等级、pid、线程和消息

    raw:只显示消息

    time:显示时间、等级、标签、pid和消息

    threadtime:显示时间、等级、pid、线程和消息

    long:显示时间、等级、pid、线程和消息,但消息内容在下一行显示,而且每条日志之间空一行。

    // 日志添加时间(最常用)
    shell@xxx:/ # logcat -v time

    -c:清空日志信息

    shell@xxx:/ # logcat -c

    -d:打印日志并退出,不阻塞

    shell@xxx:/ # logcat -d

    -t <count>:打印最近count行日志,不阻塞

    shell@xxx:/ # logcat -t 100

    -g:查看缓冲区大小并退出

    shell@xxx:/ # logcat -g
    main: ring buffer is 256Kb (7Kb consumed), max entry is 5120b, max payload is 4076b
    system: ring buffer is 256Kb (3Kb consumed), max entry is 5120b, max payload is 4076b
    crash: ring buffer is 256Kb (0b consumed), max entry is 5120b, max payload is 4076b

    -b <buffer>:查看指定缓冲区,允许多个 -b 参数,并且打印是交错的

    <buffer>可取:main / system / radio / event / crash / all,默认为 -b main -b system -b carsh

    shell@xxx:/ # logcat -b main -b radio

    -B:以二进制形式输出日志

    shell@xxx:/ # logcat -B

    -S:输出统计数据

    shell@xxx:/ # logcat -S

    -G <size>:设置日志环缓冲区的大小,可以使用K或M

    shell@xxx:/ # logcat -G 256Kb

     |grep:过滤日志中的字符串,与-s过滤标签不一样

    shell@xxx:/ # logcat -b main -b system -b radio -v time |grep SETUP_DATA_CALL

    >:输出日志到文件(windows系统)

    shell@xxx:/ #  logcat -b radio -v time > d:/log.txt
  • 相关阅读:
    离鞘剑(四)
    Node.js 蚕食计划(四)—— Express + SQL Server 搭建电影网站
    离鞘剑(三)
    python数据类型(第三弹)
    python数据类型(第二弹)
    python数据类型(第一弹)
    开发工具的安装与使用(总结篇)
    开发工具的安装与使用(第四弹)
    PriorityQueue和PriorityBlockingQueue
    一文弄懂java中的Queue家族
  • 原文地址:https://www.cnblogs.com/lialong1st/p/8583873.html
Copyright © 2011-2022 走看看