• Logcat命令详情


    logcat是什么?

    Logcat 是一个命令行工具,用于转储系统消息日志,其中包括设备引发错误时的堆叠追踪以及从您的应用使用 Log类编写的消息。

    格式:[adb] logcat [<option>] ... [<filter‐spec>] ...

    logcat 命令参数:
    -b <buffer> 加载可供查看的备用日志缓冲区,比如event和radio。默认值是main缓存区
    -c 清除缓冲区中的全部日志并退出(清除完后可以使用-g查看缓冲区)
    -d 将缓冲区的log转存到屏幕中然后退出
    -f <filename> 将log输出到指定的文件中<文件名>.默认为标准输出(stdout)
    -g 打印指定日志缓冲区的大小并退出。
    -n <count> 设置日志的最大数目<count>,默认值是4,需要和-r选项一起使用
    -r <kbytes> 每输出<kbytes>日志文件,默认值是16,需要和-f选项一起使用
    -s 设置默认的过滤级别为silent.( -s robin:I )
    -v <format> 设置日志消息的输出格式。默认值为 brief 格式有关支持的格式列表

    logcat缓冲区:adb logcat -b <buffer>
    main 查看主要日志缓冲区(默认值)
    events 查看包含事件相关消息的缓冲区
    radio 查看包含无线装置/电话相关消息的缓冲区
    system 查看系统组件的log

    logcat日志输出格式:adb logcat -v <format>
    brief 显示优先级/标记以及发出消息的进程的 PID(默认格式)
    brief 显示优先级/标记,以及发出消息的进程的 PID(默认格式)
    process 只显示 PID
    tag 只显示优先级/标记
    raw 显示原始的日志消息,没有其他元数据字段
    time 显示日期、调用时间、优先级/标记以及发出消息的进程的 PID
    threadtime 显示日期、调用时间、优先级、标记以及发出消息的线程的 PID 和 TID
    long 显示所有元数据字段,并使用空白行分隔消息

    logcat过滤日志输出:[<filter‐spec>] 格式:tag:priority
    V (verbose)— 详细(最低优先级) D (debug)— 调试
    I (info)— 信息 W (warning)— 警告
    E (error)— 错误 F (fatal)— 致命
    S (silent)— 静默(最高优先级,不会打印任何内容)

    例: adb logcat ActivityManager:I MyApp:D *:S
    最后一个元素 *:S 将所有标记的优先级设为“静默”,从而确保系统仅显示带有“ActivityManager”和“MyApp”标记的日志消息。

    使用 *:S 可有效地确保日志输出受限于您已明确指定的过滤器 —它允许过滤器充当日志输出的“白名单”。

    adb logcat 和 adb shell logcat 的区别:

    区别: 

    adb logcat 抓取设备log时,使用Ctrl +C命令或 Ctrl + D 命令时,此时会终止对设备log 的抓取。

    adb shell logcat 如果也做同样的操作,结果是一样的,也就说结果上并没有任何区别。

    但是当 adb shell 和 logcat 分段使用时,就能看到不一样的效果。在shell中执行的命令logcat一直在后台运行,当操作快捷键后,logcat线程也就终止了

    注:1.adb logcat 或者 adb shell logcat 都可以
    2.一般长时间输出log的话建议-f,-n,-r三个参数连用,这样当一个文件日志输出满了之后可以马上在另一个中进行输出。
    3.默认log输出(不指定缓冲区的情况下)是输出System和Main缓冲区的log

    详情查看安卓官网developer.android.com

  • 相关阅读:
    App架构师实践指南四之性能优化一
    App架构师实践指南三之基础组件
    App架构师实践指南二之App开发工具
    App架构师实践指南一之App基础语法
    Linux下阅读MHT文件
    What Is Docker & Docker Container ? A Deep Dive Into Docker !
    Difference between Docker Image and Container?
    RabbitMQ .NET/C# Client API Guide
    How RabbitMQ Works and RabbitMQ Core Concepts
    Message Queue vs Message Bus — what are the differences?
  • 原文地址:https://www.cnblogs.com/zeo-to-one/p/6616654.html
Copyright © 2020-2023  润新知