精华内容
下载资源
问答
  • 使用adb logcat命令显示Android设备上的Log日志

    万次阅读 多人点赞 2018-07-15 22:52:07
    使用adb logcat命令显示Android设备上的Log日志 有时候我们在手机程序上的日志要在其他地方调试,然后要看里面的Log日志。 本文教大家如何在不需要studio就可以查看手机程序中的Log日志。 实现这个功能的前提是...
     

    使用adb logcat命令显示Android设备上的Log日志

    有时候我们在手机程序上的日志要在其他地方调试,然后要看里面的Log日志。

    本文教大家如何在不需要studio就可以查看手机程序中的Log日志。

    实现这个功能的前提是使用adb命令,所以必须要有手机和电脑,还有安装adb,adb程序是很小的几M就可以。

    一、在cmd窗口查看手机的Log日志

    在确定连上手机后(adb device,可以看到电脑连接的手机)

    在cmd窗口中输入如下命令,就可以像Studio中的Logcat窗口中显示日志信息:

    //格式1:打印默认日志数据
    adb logcat 
    
    //格式2:需要打印日志详细时间的简单数据
    adb logcat -v time
    
    //格式3:需要打印级别为Error的信息
    adb logcat *:E
    
    //格式4:需要打印时间和级别是Error的信息
    adb logcat -v time *:E
    
    //格式5:将日志保存到电脑固定的位置,比如D:\log.txt
    adb logcat -v time >D:\log.txt
    
    
    

    这时手机日志更新什么日志,cmd窗口也会同步更新数据。

    但是这样没有过滤条件,如果Log日志很多,很难找到我们想要的信息,

    当然也可以复制cmd中的数据到一个文本中慢慢处理的,就是效率不高。

    下面介绍adb logcat中的详细参数命令以及如何才能高效的打印日志,或者把日志保存到我们指定的位置。

    二、adb logcat 详解

    adb logcat如果用过,但是具体命令又不记得

    可以输入adb logcat -help,查看一下一些简单的数据格式:

    adb help

    但是,没用过adb logcat,对于上面的指令也是不知所以然的。可以先看看后面的介绍。

    1.adn logcat日志格式

    adb logcat [<option>] ... [<filter-spec>] ...
    adb logcat [选项...] [过滤项...],
    
    

    前面那些-s,-v就是选项,后面那些V、D、I、W、E、F、S是级别过滤项,同一个tag只能有一个过滤项,多个tag可以有多个过滤项。

    先介绍过滤项,这个比较简单,后面在介绍选项

    2.按级别过滤日志

    格式:

    adb logcat <tag>[:priority]
    
    

    tag表示标签,priority输出的级别

    日志默认级别是V,如果错误日志我们选择E就可以。

    Android 的日志分为如下几个优先级(priority):
    
    V —— Verbose(最低,输出得最多)
    D —— Debug
    I —— Info
    W —— Warning
    E —— Error
    F —— Fatal
    S —— Silent(最高,啥也不输出)
    
    

    按某级别过滤日志则会将该级别及以上的日志输出。

    比如,命令:

    adb logcat *:W
    

    其实*可以是某个tag,如果没有指明,就表示所有。

    会将 Warning、Error、Fatal 和 Silent 日志输出。

    (注: 在 macOS 下需要给 :W 这样以 * 作为 tag 的参数加双引号,如 adb logcat ":W",不然会报错 no matches found: *:W。)

    3.按 tag 和级别过滤日志

    可以由多个 [:priority] 组成。

    比如,命令:

    adb logcat ActivityManager:I MyApp:D *:S
    

    表示输出 tag ActivityManager 的 Info 以上级别日志,输出 tag MyApp 的 Debug 以上级别日志,及其它 tag 的 Silent 级别日志(即屏蔽其它 tag 日志)。

    ###但是我发现自己使用tag标签命令,并没有成功过滤。并且使用tag后,后面的级别也无效了,所以tag使用*号比较保险。

    4.adb logcat选项解析

    
    --"-s"选项 : 设置输出日志*:s的标签, 只显示该标签的日志;
    --"-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;
    --"-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;
    --"-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;
    --"-v"选项 : 设置日志的输出格式, 注意只能设置一项;
    --"-c"选项 : 清空所有的日志缓存信息;
    --"-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;
    --"-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;
    --"-g"选项 : 查看日志缓冲区信息;
    --"-B"选项 : 以二进制形式输出日志;
    
    

    上面很多选项基本是没啥作用的,比如-s相当于过滤*:s的日志,所以是没有日志输出的

    这里介绍下用得比较多的选项-v、-c:

    (1)adb logcat -v

    -v是设置日志的输出格式的

    日志支持按以下几种格式 :

    ①brief

    默认格式。格式为:

    <priority>/<tag>(<pid>): <message>
    

    示例:

    D/HeadsetStateMachine( 1785): Disconnected process message: 10, size: 0
    

    #####②process

    格式为:

    <priority>(<pid>) <message>
    

    示例:

    D( 1785) Disconnected process message: 10, size: 0  (HeadsetStateMachine)
    

    #####③tag

    格式为:

    <priority>/<tag>: <message>
    

    示例:

    D/HeadsetStateMachine: Disconnected process message: 10, size: 0
    

    #####④raw

    格式为:

    <message>
    

    示例:

    Disconnected process message: 10, size: 0
    

    #####⑤time

    格式为:

    <datetime> <priority>/<tag>(<pid>): <message>
    

    示例:

    08-28 22:39:39.974 D/HeadsetStateMachine( 1785): Disconnected process message: 10, size: 0
    

    #####⑥threadtime

    格式为:

    <datetime> <pid> <tid> <priority> <tag>: <message>
    

    示例:

    08-28 22:39:39.974  1785  1832 D HeadsetStateMachine: Disconnected process message: 10, size: 0
    

    #####⑦long

    格式为:

    [ <datetime> <pid>:<tid> <priority>/<tag> ]
    

    #####⑧
    示例:

    [ 08-28 22:39:39.974  1785: 1832 D/HeadsetStateMachine ] Disconnected process message: 10, size: 0
    

    #####⑨指定格式可与上面的过滤同时使用。比如:

    adb logcat -v long ActivityManager:I *:S
    

    对于-v选项:
    如果需要的是普通日志那么使用-v time就可以了,
    如果需要查看线程区别使用 -v threadtime就可以了,其他日志基本也是少用的。

    (2)adb logcat -c

    adb logcat -c是用来清除缓存信息的,这个没有参数

    三、把日志信息保存到电脑中

    adb logcat最后添加" > 保存文件的地址 "

    比如需要将的信息保存到电脑中使用下面的命令:

    adb logcat -v time > D:\log.txt
    
    

    你就可以在D盘中看到一个log.txt文件,并且里面有之前的日志信息

    如果没有指定具体的位置的命令

    adb logcat -v time > log.txt
    
    

    这个文件是保存在C盘的用户名的文件夹下的。

    四、使用adb logcat总结

    常用的其实就两三个命令

    
    1.adb logcat -v time
    2.adb logcat -v time > D:\log.txt
    3.adb logcat -c
    
    

    直接显示日志信息,是会显示很多日志信息的,好像是从设备最近一次开机的日志开始显示

    最好的做法的先使用-c清除之前的日志信息,再触发事件,查看最近的日志信息

    ##下面是我的一个示例:
    在MainActivity的生命周期中写几个方法打印Log,清除日志后,运行程序,查看日志文本。

    ###1.Android代码:

    package com.example.wenzhi.adblog;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    
    public class MainActivity extends AppCompatActivity {
        private String TAG = "adb MainActivity";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Log.e(TAG, "onCreate");
        }
    
        @Override
        protected void onStart() {
            super.onStart();
            Log.e(TAG, "onStart");
        }
    
        @Override
        protected void onPause() {
            super.onPause();
            new Thread(new Runnable() {
                @Override
                public void run() {
                    Log.e(TAG,"onPause on over thread");
                }
            }).start();
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            Log.e(TAG, "onDestroy");
        }
    }
    

    ###2.adb命令和过程,结果

    2

    ###3.如果把日志直接显示在cmd窗口中

    33

    日志窗口是会不断增加的。。。

    到这里adb logcat的使用就已经详细介绍完毕了。

    如果想了解adb其他详细的命令:https://github.com/mzlogin/awesome-adb#%E6%9F%A5%E7%9C%8B%E6%97%A5%E5%BF%97

    其实上面都是一些简单知识,是对知识的探索学习,
    但是真正实际使用就几个命令。

    看到这么多人,浏览这个文章,
    我感觉是应该把一些真正实用的东西分享給大家,
    就是adb脚本,
    实际开发中使用adb脚本能达到事半功倍的效果。

    下面是我个人在开发过程中常用的几个关于日志的脚本,
    双击即可运行,非常方便。

    五、开发中实用的关于日志脚本

    1、清除日志缓存.bat

    adb logcat -c
    

    这个脚本是配合下面获取日志的脚本使用的,可以清除之前缓存的数据,只抓取自己当前准备获取的日志信息。

    2、获取日志文件.bat

    adb wait-for-device
    adb devices
    adb shell logcat -v threadtime >"%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%log.txt"
    pause
    
    

    这个日志在分析问题有一定的作用,哪怕是系统问题也会有日志。
    并且这里加入wait-for-device,有些情况可以定位开机就重启或者系统挂的问题。

    3、抓取Android整个日志 .bat

    获取Android整个日志文件,这个是需要root权限的

    adb pull /data/log/android_logs/
    pause
    
    

    4、获取系统最前端窗口信息.bat

    echo ####Current: %date% %time%
    set date_time="%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%"
    adb shell dumpsys window > windowInof_%date_time%.txt
    pause
    

    这个脚本可以获取当前Activity名称和apk的包名等信息

    在windowInof.txt文件,搜索关键字:mCurrentFocus

    比如UC浏览器的界面信息:

    mCurrentFocus=Window{86e35b9 u0 com.UCMobile/com.uc.browser.InnerUCMobile}

    包名:com.UCMobile
    Activity全路径:com.UCMobile/com.uc.browser.InnerUCMobile

    4、获取全量日志.bat

    下面这个日志脚本在系统开发中是非常使用的,
    把系统中重要的数据都进行了获取,
    无论系统出现什么样的问题都会有一定的参考价值。

    这个适用于系统开发,也是需要root权限的,
    因为有些文件目录普通用户是获取不到的

    
    @echo off
    ::V1.0 2021-1-18
    
    ::各个系统不同,可以根据需求添加或者删除不必要的目录下的数据获取
    
    echo 版本号:Get Android All Log V1.0
    echo.
    
    echo 当前时间是:%time% 即 %time:~0,2%点%time:~3,2%分%time:~6,2%秒%time:~9,2%厘秒@
    
    set date_time="%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%_%time:~6,2%%time:~9,2%"
    ::设置显示的文件夹名称
    set Folder="Logs_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%_%time:~6,2%%time:~9,2%"
    echo 日志文件夹:%Folder%
    mkdir %Folder%
    
    ::获取root权限,下面pull一些隐私目录的数据需要root权限
    adb remount
    adb root
    ::创建文件夹
    mkdir %Folder%\device
    ::获取系统的所有app服务
    adb shell ps -A > %Folder%\device\ps.txt
    ::获取系统的cup等占用情况
    adb shell top -b -n 1 > %Folder%\device\top.txt
    ::获取系统的cup前十个占用最多的进程信息
    adb shell top -b -n 1 -H -m 10 -s 6 -o pid,tid,user,pr,ni,%%cpu,s,virt,res,pcy,cmd,name > %Folder%\device\top2.txt
    ::获取系统的进程内核信息
    adb shell cat /proc/cmdline > %Folder%\device\cmdline.txt
    ::获取系统的进程内存占用信息
    adb shell cat /proc/meminfo > %Folder%\device\meminfo.txt
    ::获取系统的cup信息
    adb shell cat /proc/cpuinfo > %Folder%\device\cpuinfo.txt
    ::获取系统的prop属性信息
    adb shell getprop > %Folder%\device\getprop.txt
    ::获取系统的内存大小信息
    adb shell df -h > %Folder%\device\df.txt
    
    ::获取系统的当前界面截图
    adb shell screencap /mnt/sdcard/Pictures/capture.png
    adb pull /mnt/sdcard/Pictures/capture.png %Folder%\capture.png
    
    ::获取系统的dumpsys信息,包含dumpsys package XXX的信息
    mkdir %Folder%\dumpsys
    adb shell dumpsys > %Folder%\dumpsys\dumpsys.txt
    
    ::获取系统的缓存日志
    adb shell  logcat -v threadtime -d > %Folder%\logcat.txt
    
    ::获取系统的各目录下的日志,根据不同系统进适配
    
    ::系统Android日志
    adb pull   /data/log/android_logs       %Folder%\android_logs
    ::Dalvik、状态监视调试器、C层代码以及libc的一些问题导致的错误日志
    adb pull   /data/tombstones             %Folder%\tombstones
    ::系统ANR异常日志
    adb pull   /data/anr                    %Folder%\anr
    ::系统内核日志
    adb pull   /sys/fs/pstore               %Folder%\pstore
    ::系统内核应用程序崩溃数据
    adb pull   /data/system/dropbox         %Folder%\dropbox
    ::系统??日志
    adb pull   /data/log/reliability        %Folder%\reliability_system
    adb pull   /data/vendor/log/reliability %Folder%\reliability_vendor
    ::系统settings下的system、secure、global等属性
    adb pull /data/system/users/0           %Folder%\settings
    
    ::获取系统的recovery信息
    mkdir %Folder%\recovery
    adb pull /splash2/recovery %Folder%\recovery
    
    echo.
    echo ==========log抓取完成==========
    pause
    
    

    实用的脚本太多,就不一一列举了,
    下面是自己整理的一个脚本包,需要的可以自己下载:
    https://download.csdn.net/download/wenzhi20102321/15059091

    包含主要内容有:
    44
    养成adb脚本的编写,对重复性的adb命令操作有很大作用。

    共勉 :多做有意义的是事情。

    展开全文
  • logcat命令

    2014-08-22 11:33:46
    Android日志系统提供了记录和查看系统调试信息的...使用logcat命令 你可以用 logcat 命令来查看系统日志缓冲区的内容: [adb] logcat [] ... [] ... 请查看Listing of logcat Command Options ,它对logcat命令有详细

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

    使用logcat命令

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

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

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

    你也可以在你的电脑或运行在模拟器/设备上的远程adbshell端来使用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 isever 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 oforiginating process (the default format).
    • process — Display PID only.
    • tag — Display the priority/tag only.
    • thread — Display process:thread and priority/tagonly.
    • raw — Display the raw log message, with no othermetadata fields.
    • time — Display the date, invocation time,priority/tag, and PID of the originating process.
    • long — Display all metadata fields and separatemessages 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.outSystem.err)输出到/dev/null ,在运行DalvikVM的进程中,有一个系统可以备份日志文件。在这种情况下,系统会用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 。具体查看ViewingAlternative Log Buffers.
    -c 清楚屏幕上的日志.
    -d 输出日志到屏幕上.
    -f <filename> 指定输出日志信息的<filename>,默认是stdout .
    -g 输出指定的日志缓冲区,输出后退出.
    -n <count> 设置日志的最大数目<count>.,默认值是4,需要和 -r 选项一起使用。
    -r <kbytes> <kbytes>时输出日志,默认值为16,需要和-f 选项一起使用.
    -s 设置默认的过滤级别为silent.
    -v <format> 设置日志输入格式,默认的是brief 格式,要知道更多的支持的格式,参看ControllingLog Output Format .
    展开全文
  • Logcat命令

    2012-02-27 09:28:01
    Android日志系统提供了记录和查看系统调试信息的功能。...使用logcat命令 你可以用 logcat 命令来查看系统日志缓冲区的内容: [adb] logcat [] ... [] ... 请查看Listing of logcat Command Options ,它对

    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.outSystem.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 .

    展开全文
  • logcat 命令

    2017-07-06 11:09:21
    1.logcat -c 清空log的缓存 2.logcat 查看log打印 3.logcat -s 字符 查看指定的字符,对应的log输出
    1.logcat -c 清空log的缓存
    
    2.logcat      查看log打印
    3.logcat -s 字符         查看指定的字符,对应的log输出
    展开全文
  • logcat命令详解

    万次阅读 多人点赞 2011-12-12 11:16:42
    日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来查看和使用. 在使用logcat之前,请确保手机的USB调试模式已经开启,可以通过"Setting->Application->Development->USB debugging"来...
  • 主要介绍了Android adb logcat 命令详细介绍的相关资料,这里对logcat 命令进行了详细介绍,并介绍了过滤日志输出的知识,需要的朋友可以参考下
  • Android logcat命令详解

    2020-05-06 10:07:04
    Android logcat命令详解 参考网址:https://www.cnblogs.com/JianXu/p/5468839.html 一、logcat命令介绍 二、logcat缓冲区 三、logcat命令参数 四、logcat格式化输出 五、logcat优先级 ...
  • adb logcat 命令

    千次阅读 2020-06-22 16:53:53
    adb logcat 命令 adb 命令在移动端开发和测试中广泛使用 , 尤其在自动化测试脚本中很常见 . adb logcat用于输出设备日志,分析错误原因 . 本章主要说明 adb logcat 命令 . 有四部分组成,分别是命令格式, 常用命令 , ...
  • 使用 logcat 命令

    2019-04-01 11:25:00
    使用logcat 命令 查看和跟踪系统日志缓冲区的命令logcat的一般用法是: [adb] logcat [<option>] ......filter-spec>] ... ...下文介绍过滤器和命令选项... 可以在开发机中通过远程shell的方式使用logcat命令...
  • logcat命令总结

    2021-02-22 09:26:41
    一、logcat命令介绍 1.android log系统 2.logcat介绍 logcat是android中的一个命令行工具,可以用于得到程序的log信息 log类是一个日志类,可以在代码中使用logcat打印出消息 常见的日志纪录方法包括: ...
  • Android Logcat命令详解

    2018-11-23 10:37:20
    logcat命令介绍 android log系统 logcat介绍 一、logcat命令介绍 1.android log系统 2.logcat介绍 logcat是android中的一个命令行工具,可以用于得到程序的log信息
  • adb logcat命令详解

    2018-11-26 13:56:45
    一、logcat命令介绍 1.android log系统   2.logcat介绍 logcat是android中的一个命令行工具,可以用于得到程序的log信息 log类是一个日志类,可以在代码中使用logcat打印出消息 常见的日志纪录方法包括:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,501
精华内容 8,200
关键字:

logcat命令