返回顶部
首页 > 资讯 > 移动开发 >logcat命令使用方法和查看android系统日志缓冲区内容的方法
  • 705
分享到

logcat命令使用方法和查看android系统日志缓冲区内容的方法

缓冲方法logcatAndroid 2022-06-06 10:06:48 705人浏览 薄情痞子
摘要

*注:可以用 adb loGCat > 路径/文件名 来保存,此命令执行之时起的全部日志信息到一个文件里,ctrl + C 结束日志输出;后面不加 > 路径/文件名

*注:可以用 adb loGCat > 路径/文件名 来保存,
此命令执行之时起的全部日志信息到一个文件里,ctrl + C 结束日志输出;
后面不加 > 路径/文件名 的话,则在 stdout (终端窗口)中输出!
例如:$ adb logcat -v long Checkin *:S > ~/桌面/log.txt

一、在 Java 与 C 语言中输出日志:
1) Java 代码在程序中输出日志, 使用 Android.util.Log 类的以下 5 个方法:
   Log.v()、Log.d()、Log.i()、Log.w()、Log.e()。
   分对应 Verbose、Debug、INFO、Warn、Error 的首字母。
   例如:Log.i( "类::函数名", "日期_时间_源码文件名_行号_日志信息内容" );

2) C 代码在程序中输出日志,使用 log 的 api 函数:
   __android_log_write( 日志类型宏,日志标签字符串,日志令牌内容字符串 );
   需要:1. Android.mk 中添加 LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
      2. *.c 中添加 #include <android/log.h>
      3. 日志类型宏有:
代码如下:
        // Android log priority values, in ascending priority order.
        typedef enum android_LogPriority {
            ANDROID_LOG_UNKNOWN = 0,
            // only for SetMinPriority()
            ANDROID_LOG_DEFAULT,
            ANDROID_LOG_VERBOSE,
            ANDROID_LOG_DEBUG,
            ANDROID_LOG_INFO,
            ANDROID_LOG_WARN,
            ANDROID_LOG_ERROR,
            ANDROID_LOG_FATAL,
            // only for SetMinPriority(); must be last
            ANDROID_LOG_SILENT,
        } android_LogPriority;

二、logcat 使用方法:     
Usage: logcat [options] [filterspecs]
用法:  logcat [选项] [过滤说明]

options include:
选项包含:
  -s              Set default filter to silent.
                  Like specifying filterspec '*:S'
                  设置默认过滤为无声的。
                  像指定过滤说明为 *:S ,见下面 过滤说明 部份详述
  -f <filename>   Log to file.
                  Default to stdout
                  输出日志到文件。
                  默认为 stdout
  -r [<kbytes>]   Rotate log every kbytes.
                  (16 if unspecified).
                  Requires -f
                  设置环形日志缓冲区的kbytes。
                  默认值为16。
                  需要和 -f 选项一起使用
  -n <count>      Sets max number of rotated logs to <count>, default 4
                  设置环形日志缓冲区的最大数目,默认值是4,需要和 -r 选项一起使用
  -v <fORMat>     Sets the log print format, where <format> is one of:
                  设置 log 的打印格式,  格式有如下主要7种:(不能组合使用)

                  brief
                  process
                  tag
                  thread
                  raw
                  time
                  threadtime
                  long

  -c              clear (flush) the entire log and exit
                  清除所有 log 并退出
  -d              dump the log and then exit (don't block)
                  得到所有log并退出且不阻塞
  -t <count>      print only the most recent <count> lines (implies -d)
                  仅打印最近的由参数 count 指出的行数(必然包含 -d)
  -g              get the size of the log's ring buffer and exit
                  得到环形缓冲区的大小并退出
  -b <buffer>     Request alternate ring buffer, 'main', 'system', 'radio' or 'events'.
                  Multiple -b parameters are allowed and the results are interleaved.
                  The default is -b main -b system.
                  请求供替换的环形缓冲区,如:main,system,radio,events。
                  多个 -b 参数是被允许,并且结果是交错输出的。
                  -b main -b system 是默认的。
  -B              output the log in binary
                  输出 log 到二进制文件中。
filterspecs are a series of <tag>[:priority]
过滤说明是一系列 <tag>[:priority]

where <tag> is a log component tag (or * for all) and priority is:
tag 是 eclipse 中 logcat 图形界面中 Tag 的内容(或者有 * 表示全部),它之后的冒号(:)后面跟优先级:
    日志类型标识符(优先级由低到高排列):
    1. V — Verbose 详细的 <- 最低优先权
    2. D — Debug   调试
    3. I — Info    消息
    4. W — Warn    警告
    5. E — Error   错误
    6. F — Fatal   致命的
    7. S — Silent  无声的 <- 最高优先权

'*' means '*:d' and <tag> by itself means <tag>:v
* 意味着 *:d 且 单孤地 tag 意味着 tag:V

If not specified on the commandline, filterspec is set from ANDROID_LOG_TAGS.
如果在命令行上没有详细说明,过滤规格即是 ANDROID_LOG_TAGS 结果集。

If no filterspec is found, filter defaults to '*:I'
如果没有过滤说明,过滤规格默认为 *:I

If not specified with -v, format is set from ANDROID_PRINTF_LOG or defaults to "brief"
如果没有 -v 指定格式,将是 ANDROID_PRINTF_LOG 或 brief 格式集。

1) 只输出指定 标签 和 类型 的日志
   格式:
   adb logcat <日志标签>:<日志类型标识符> <日志标签>:<日志类型标识符> ... *:S
   注:1. 可以写多个 <日志标签>:<日志类型标识符> 之间用空格分隔;
     2. 最后必须是 *:S ,表示其它的都不要显示出来
   例如:
   $ adb logcat dalvikvm:D Checkin:W *:S
   注:adb logcat Checkin *:S =等同于=> adb logcat Checkin:V *:S
   注:以上命令均没加 -v 来指出日志格式,即默认为: ANDROID_PRINTF_LOG 或 brief 格式集。

2) 输出指定 标签 和 类型 的带有格式的日志
注:以下测试日志内容为:test log format,
  即 eclipse 中的 logcat 图形界面里的 Text 中的内容!

1. brief      - 日志类型/日志标签(进程ID): 日志内容
   例如:$ adb logcat -v brief Checkin *:S
      I/Checkin(24713): test log format
      
2. process    - 日志类型(进程ID) 日志内容 (日志标签)
   例如:$ adb logcat -v process Checkin *:S
      I(24713) test log format  (Checkin)
      
3. tag        - 日志类型/日志标签: 日志内容
   例如:$ adb logcat -v tag Checkin *:S
        I/Checkin: test log format
4. thread     - 日志类型(进程ID:线程ID)
   例如:$ adb logcat -v thread Checkin *:S
        I(24713:0x6089) test log format
5. raw        - 日志内容
   例如:$ adb logcat -v raw Checkin *:S
        test log format
6. time       - 日期 调用时间 日志类型/日志标签(进程ID): 日志内容
   例如:$ adb logcat -v time Checkin *:S
   05-27 11:25:33.854 I/Checkin(24713): test log format

7. threadtime - 日期 调用时间 进程ID 线程ID 日志类型 日志标签: 日志内容
   例如:$ adb logcat -v time Checkin *:S
   05-27 11:25:33.854 24713 24713 I Checkin: test log format
   注:只有此种格式时 线程ID 为十进制数。
8. long       - [ 日期 调用时间 进程ID:线程ID 日志类型/日志标签 ] 转行显示 日志内容
   例如:$ adb logcat -v long Checkin *:S
   [ 05-27 11:25:33.854 24713:0x6089 I/Checkin ]
   test log format

您可能感兴趣的文章:在Android界面上显示和获取Logcat日志输出的方法Android adb logcat 命令查看日志详细介绍Android shell命令行中过滤adb logcat输出的几种方法Android开发之在程序中时时获取logcat日志信息的方法(附demo源码下载)Android Studio使用小技巧:自定义Logcatandroid真机调试时无法显示logcat信息的解决方法介绍Android开发笔记之:一分钟学会使用Logcat调试程序的详解Android调试华为和魅族手机logcat不显示的问题


--结束END--

本文标题: logcat命令使用方法和查看android系统日志缓冲区内容的方法

本文链接: https://lsjlt.com/news/27136.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • logcat命令使用方法和查看android系统日志缓冲区内容的方法
    *注:可以用 adb logcat > 路径/文件名 来保存,此命令执行之时起的全部日志信息到一个文件里,ctrl + C 结束日志输出;后面不加 > 路径/文件名...
    99+
    2022-06-06
    缓冲 方法 logcat Android
  • Win7系统中查看Windows日志的方法
      Windows日志位于计算机管理的事件查看器中,用于存储来自旧版应用程序的事件以及适用于整个系统的事件。   Win7系统的Windows日志包括五个类别,分别为应用程序日志、安全日志、系统日志、安装程序日志和转发事...
    99+
    2023-06-14
    Win7系统 查看Windows日志 Win7 Windows 系统 日志 方法
  • ubuntu系统日志查看的方法是什么
    在Ubuntu系统中,可以通过以下几种方法查看系统日志: 使用命令行工具:可以使用以下命令查看系统日志: dmesg:显示系统...
    99+
    2024-04-02
  • Android中使用SQLite3 命令行查看内嵌数据库的方法
    在上图中,除了最后一个红色的方框,其它方框都是adb shell下的命令。 【1】在Android程序中,一般创建的数据库存放在 /data/data/[应用程序包名]/d...
    99+
    2022-06-06
    方法 数据 sqlite3 命令行 SQLite 数据库 Android
  • win7系统查看错误日志的方法是什么
    win7系统查看错误日志的方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。电脑使用久了就容易出现问题,如蓝屏,黑屏等。出现这些问题,我们应该及时查看系统...
    99+
    2023-06-28
  • CentOS系统中有哪些常用查看系统信息和日志的命令
    本篇内容介绍了“CentOS系统中有哪些常用查看系统信息和日志的命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!系统日志文件(可以通过ca...
    99+
    2023-06-10
  • 使用Navicat查看MySQL日志的具体方法
    下文主要给大家带来使用Navicat查看MySQL日志的具体方法,希望这些内容能够带给大家实际用处,这也是我编辑使用Navicat查看MySQL日志的具体方法这篇文章的主要目的。好了,废话不多说,大家直接看...
    99+
    2024-04-02
  • Win7系统查看控制面板命令的方法
    在Win7系统中,有许多命令可以方便用户使用和操作。在自动控制面板中,有许多应用程序,用户可以使用命令调出。这些命令是什么?事实上,这些命令存储在计算机中,那么如何查看这些命令呢?让我们与您分享Win7系统查看控制面板命令的方法。输入运行(...
    99+
    2023-07-10
  • 利用shell命令统计日志的方法详解
    前言 大家都知道,通过使用 shell 命令可以很方便地对日志进行统计和分析,当服务有异常的时候,需要去排查日志,那么掌握一种统计日志的技巧就是必不可少的了。 假设有一个包含下面内容的日志文件 access...
    99+
    2022-06-04
    详解 命令 方法
  • Python 日志系统的高级技巧:缓存 API 的使用方法。
    Python 日志系统的高级技巧:缓存 API 的使用方法 在现代软件开发中,日志系统是一个不可或缺的部分。它可以帮助开发者快速定位问题,排除错误,提高应用程序的稳定性和可靠性。Python 的日志系统是一个强大的工具,可以方便地记录各种级...
    99+
    2023-08-25
    日志 缓存 api
  • Linux系统如何使用命令行的方式查看内存占用
    这篇文章给大家分享的是有关Linux系统如何使用命令行的方式查看内存占用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. /proc/meminfo一种最简单的方法是通过“/proc/meminfo”来检查内存...
    99+
    2023-06-28
  • Linu系统实时监控日志内容的方法是什么
    这篇文章的内容主要围绕Linu系统实时监控日志内容的方法是什么进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!1. tail命令 实时监控日志如上所述...
    99+
    2023-06-28
  • Linux系统使用Fuser命令的方法
    什么是Fuser命令? fuser命令是一个非常聪明的unix实用程序,用于查找正在使用某个文件、目录或socket的进程。 它还提供有关拥有该进程的用户和访问类型的信息。。fuser工具显示了使用指定文件或文件系统...
    99+
    2022-06-03
    Linux fuser命令 Linux中fuser命令用法
  • Linux系统命令free的使用方法
    这篇文章将为大家详细讲解有关Linux系统命令free的使用方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Linux系统中free命令最主要的用途就是用来显示内存的状态,其中包括实体内存...
    99+
    2023-06-28
  • Linux系统lsof命令的使用方法
    Linux系统lsof命令的使用方法,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Linux系统中lsof命令是用于列出当前系统打开文件的工具,是一个非常方便的命令。lsof命...
    99+
    2023-06-28
  • 查看Linux系统版本的命令的方法是什么
    这篇文章将为大家详细讲解有关查看Linux系统版本的命令的方法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在Linux下安装软件的时候,不同的系统版本会有不同的软件包,,需查看其系统...
    99+
    2023-06-28
  • Linux系统的dd命令的使用方法
    这篇文章主要介绍“Linux系统的dd命令的使用方法”,在日常操作中,相信很多人在Linux系统的dd命令的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux系统的dd命令的使用方法”的疑惑有所...
    99+
    2023-06-12
  • 使用Linux命令查看内存占用的方法指的是哪些
    使用Linux命令查看内存占用的方法指的是哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1./proc/meminfo查看 RAM 使用情况最简单的方法是通过 /proc/...
    99+
    2023-06-28
  • linux系统下dd命令的使用方法
    功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的 diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入...
    99+
    2022-06-04
    使用方法 命令 系统
  • Centos系统里screen命令的使用方法
    本篇内容主要讲解“Centos系统里screen命令的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Centos系统里screen命令的使用方法”吧!screen是个好东西,这几天一直在...
    99+
    2023-06-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作