根据 package 查看 logcat 日志 PID Cat

使用PID Cat过滤指定应用包名的日志
PID Cat是一款方便开发者查看特定应用日志的工具,通过应用包名过滤日志,尤其适用于Mac环境。安装后,输入`pidcat`加上应用包名即可。本文介绍了安装过程和示例。

根据 package 查看 logcat 日志,强大,推荐,Mac已经通过测试,好用,高大上,可以先看下我的截图



安装过程截图:




使用:输入pidcat 你要查看的包名 例如:pidcat com.tb.demo


PID Cat

An update to Jeff Sharkey's excellent logcat color script which only shows log entries for processes from a specific application package.

During application development you often want to only display log messages coming from your app. Unfortunately, because the process ID changes every time you deploy to the phone it becomes a challenge to grep for the right thing.

This script solves that problem by filtering by application package. Supply the target package as the sole argument to the python script and enjoy a more convenient development process.

pidcat com.oprah.bees.android

Here is an example of the output when running for the Google Plus app:

Example screen

Install

Get the script:

  • OS X: Use Homebrew.

     brew install pidcat
    

    If you need to install the latest development version

    brew unlink pidcat  
    brew install --HEAD pidcat
    
  • Others: Download the pidcat.py and place it on your PATH.

Make sure that adb from the Android SDK is on your PATH. This script will not work unless this is that case. That means, when you type adb and press enter into your terminal something actually happens.

To include adb and other android tools on your path:

export PATH=$PATH:<path to Android SDK>/platform-tools
export PATH=$PATH:<path to Android SDK>/tools

Include these lines in your .bashrc or .zshrc.

<think>我们被要求使用adb命令查看Android系统错误日志根据引用[1]和引用[2],我们知道adb命令中有logcat命令可以用于查看日志。而系统错误日志通常指的是Android系统运行过程中产生的错误信息,这些信息会记录在系统日志中。 在Android中,系统错误日志可以通过adb logcat命令查看logcat命令有很多选项,我们可以通过过滤日志级别来只显示错误信息(ERROR级别)或更高级别的日志(如FATAL)。通常,错误日志的级别是'E'(ERROR)。 具体步骤: 1. 连接Android设备(通过USB或网络adb连接)。 2. 打开命令行终端。 3. 使用以下命令查看错误日志: 基本命令: ``` adb logcat -s *:E ``` 解释: - `-s` 表示静默模式,只显示指定标签的日志。这里我们使用`*:E`表示显示所有标签(*)的错误级别(E)及以上的日志。 另一种方式:使用日志级别过滤器 ``` adb logcat *:E ``` 但是,我们可能还想看到更高级别的日志(如FATAL),而错误日志级别E已经包含了FATAL(因为FATAL比ERROR更严重)。不过,通常我们只关注错误日志时,使用E级别即可。 另外,我们可能希望实时查看日志(持续输出),这是logcat的默认行为。如果想退出,可以按Ctrl+C。 如果只想查看一次错误日志(非持续),可以加上`-d`参数: ``` adb logcat -d *:E ``` 如果需要将错误日志保存到文件,可以使用: ``` adb logcat -d *:E > error_log.txt ``` 此外,我们还可以通过指定标签来查看特定系统组件的错误日志。例如,查看Android运行时(ART)的错误日志: ``` adb logcat -s AndroidRuntime:E ``` 但是,用户要求查看的是系统错误日志,所以我们可以使用`*:E`来捕获所有错误。 注意:在Android开发中,系统错误日志通常包括系统服务、进程崩溃等。特别地,如果系统发生崩溃(如系统服务崩溃),我们可能会看到“FATAL EXCEPTION”这样的日志,它也会被包含在E级别中。 引用[1]中提到了logcat命令行工具,因此我们可以确认这是正确的方法。 因此,总结如下: 使用命令: ``` adb logcat *:E ``` 或者为了更简洁(过滤掉一些不必要的输出): ``` adb logcat -s *:E ``` 这两个命令的区别在于: - `adb logcat *:E` 会显示所有标签的E级别及以上的日志,但每行日志会包含完整的日志信息(包括时间、进程ID等)。 - `adb logcat -s *:E` 同样显示所有标签的E级别及以上的日志,但是只显示我们指定过滤的日志(这里就是所有标签的E级别),并且不会显示其他级别的日志(比如我们只指定了E,那么就不会显示F、S等,但实际上E以上只有F和S,而S是静默级别,不会输出)。而且,`-s`选项会禁止显示其他非指定标签的日志,因此它只显示我们通过`-s`指定的过滤器的日志。 实际上,`-s`选项后面可以接多个过滤器,例如`adb logcat -s Tag1:E Tag2:W`,表示只显示Tag1的错误级别和Tag2的警告级别。 因此,如果我们只想看错误日志,使用`-s *:E`即可。 另外,我们还可以通过`-v`选项来设置输出格式,例如时间、进程信息等。例如,以时间格式输出: ``` adb logcat -v time -s *:E ``` 这样每条日志前面会加上时间。 所以,最常用的可能是: ``` adb logcat -v time -s *:E ``` 根据引用[3],如果我们需要root权限才能查看某些日志(比如内核日志),那么可能需要先执行`adb root`来以root权限重启adbd,然后再执行logcat。但一般情况下,系统错误日志(用户空间的)不需要root权限。 但是,有些系统日志可能属于受保护的日志,普通用户可能无法查看。如果发现没有输出,可以尝试以root权限运行adbd(需要设备已root并且adbd支持root权限)。命令: ``` adb root adb logcat -v time -s *:E ``` 总结: 1. 普通错误日志(不需要root): ``` adb logcat -v time -s *:E ``` 2. 如果遇到权限问题,尝试获取root权限(需要设备支持): ``` adb root adb logcat -v time -s *:E ``` 3. 将日志保存到文件: ``` adb logcat -v time -d -s *:E > error_log.txt ``` 注意:`-d`参数表示将当前缓存的日志输出一次然后退出,这样不会持续等待日志。 最后,根据引用[2],我们还可以使用`adb shell`进入设备shell后执行`logcat`命令,效果相同。例如: ``` adb shell logcat -v time -s *:E ``` 但这样就不需要每次在命令前加`adb`了。 因此,回答用户的问题:使用adb命令查看Android系统错误日志,我们推荐使用`adb logcat -v time -s *:E`。 如果用户需要更详细的帮助,可以进一步说明。 生成相关问题: 1. 如何通过adb logcat过滤特定标签的日志? 2. 如何查看Android内核日志(kmsg)? 3. 如何清除Android设备的日志缓存? 4. 如何通过adb命令导出完整的系统日志?</think>### 使用ADB命令查看Android系统错误日志 在Android开发中,查看系统错误日志最常用的ADB命令是 `adb logcat`,以下是具体操作方法和关键技巧: #### 一、基础命令 ```bash # 查看实时系统日志(包含错误信息) adb logcat # 仅显示错误级别(ERROR)及以上日志 adb logcat *:E # 过滤特定标签的错误(如系统崩溃) adb logcat AndroidRuntime:E *:S ``` - `*:E` 表示只显示ERROR级别日志 - `*:S` 表示静默其他标签的日志 - 按 `Ctrl+C` 停止实时日志流 #### 二、关键错误过滤技巧 1. **显示带时间戳的崩溃日志** ```bash adb logcat -v time AndroidRuntime:E *:S ``` 输出示例: ``` 01-15 10:23:45.521 E/AndroidRuntime(1234): FATAL EXCEPTION: main 01-15 10:23:45.521 E/AndroidRuntime(1234): java.lang.NullPointerException... ``` 2. **查看内核错误** ```bash adb shell dmesg | grep -i "error" ``` 3. **过滤ANR错误** ```bash adb logcat *:E | grep -i "ANR in" ``` #### 三、日志保存与分析 ```bash # 保存日志到本地文件 adb logcat -v time -d > system_errors.log # 导出上次崩溃报告 adb bugreport # 使用grep分析错误文件 cat system_errors.log | grep -C 5 "FATAL EXCEPTION" ``` #### 四、高级调试技巧 1. **清除旧日志缓存** ```bash adb logcat -c ``` 2. **监控特定进程** ```bash adb shell ps -A | grep "your.package" adb logcat --pid=<进程ID> ``` 3. **查看系统服务错误** ```bash adb logcat -s SystemServer:E ``` #### 五、权限注意事项 - 普通日志无需root权限[^3] - 内核日志(`dmesg`)可能需要root: ```bash adb root adb shell dmesg | grep "kernel error" ``` > **提示**:结合Android Studio的`Logcat`工具可视化分析更高效[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值