首页 > 其他分享 >一个高效的Android终端日志过滤工具

一个高效的Android终端日志过滤工具

时间:2023-06-30 17:01:15浏览次数:34  
标签:-- 过滤 tag source pidcat Android 日志

什么是pidcat


在Android日常开发中,对日志过滤是很有必要的,但是我们在终端过滤日志的时候因为日志信息过多而看的眼花缭乱,而且很多时候,我们只想过滤我们自己应用进程的日志,但是当我们的进程重启后,pid就变了,这时又需要重新获取进程pid,然后过滤,如果我们想看两个或多个进程的日志就更麻烦,于是就产生了pidcat。

先上图看看效果

$pidcat toor

一个高效的Android终端日志过滤工具_重启

如何使用


$pidcat --help

A logcat colored command which displays only source entries for processes of a specific application package.  
  
Usage: pidcat [OPTIONS] [process]...  
  
Arguments:  
[process]...  
    Name of the process to be filtered  
  
Options:  
-t, --tag <tag>  
    The tag filter patterns  
  
--tag-width <tag_width>  
    Set the tag show width. must >= 10  
    [default: 20]  
  
-v, --revert-match <revert>  
    Selected lines are those not matching any of the specified patterns.  
  
-b, --buffer <buffer>  
    The buffer to filter  
    [default: main system]  
    [possible values: main, system, crash, radio, events, all]  
  
-c, --clear  
    Clear (flush) the entire log and exit  
  
-l, --level <level>  
    Filter log level  
    [default: V]  
    Possible values:  
    - V: Verbose  
    - D: Debug  
    - I: Info  
    - W: Warning  
    - E: Error  
    - F: Fatal  
  
-o, --output <output>  
    Writing logs to a file  
  
--color <color>  
    Display in highlighted color to match priority  
    [default: auto]  
    [possible values: auto, always, never]  
  
-i, --ignore-case  
    Ignore case  
  
-s <device>  
    Use device with given serial  
  
-h, --help  
    Print help (see a summary with '-h')  
  
-V, --version  
    Print version

其中tag和revert都支持正则,如下命令可以过滤两个tag的日志

pidcat -t "ActivityManager|Debug"

两种安装方式


通过源码安装

这种方式适合所有操作系统

  • 安装rust开发环境
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • 下载源码
git clone https://github.com/borneygit/pidcat.git
cd pidcat
  • 安装
cargo install --path .

mac系统通过brew安装

brew tap borneygit/brew
brew install borneygit/brew/pidcat

项目是使用rust编写的,开放了获取adb logcat日志的接口可以在你的crate中直接使用。
在Rust项目的Cargo.toml中加入依赖

pidcat="0.2.1"

使用如下代码就可以获得处理封装好的android 终端日志了

use futures::StreamExt;  
use pidcat::LogStream;  
use pidcat::source::*;  
  
#[tokio::main]  
async fn main() {  
    let source = ADBSource::new(None);  

    let mut logs: LogStream = source.source().await;  

    while let Some(r) = logs.next().await {  
        if let Ok(log) = r {  
        println!("{}", log);  
        }  
    }  
}

标签:--,过滤,tag,source,pidcat,Android,日志
From: https://blog.51cto.com/u_16175637/6591903

相关文章

  • linux系统-关于/var/log/messages系统日志文件
    日志信息各字段含义:1. 事件的日期和时间2. 事件的来源主机3. 产生这个事件的程序[进程号] 4. 实际的日志信息/var/log/messages日志格式从左到右分别是:月  日   时分秒   主机名   进程名 PID   日志内容......
  • Android 构建脚本从Groovy迁移到Kotlin DSL
    原文:https://edenxio.github.io/2019/02/01/Android%20%E6%9E%84%E5%BB%BA%E8%84%9A%E6%9C%AC%E4%BB%8EGroovy%E8%BF%81%E7%A7%BB%E5%88%B0Kotlin%20DSL/ 为什么要迁移?因为Groovy是动态语言,在用作Android构建脚本的时候,经常有些问题:很差的IDE支持(自动提示等)性能问题......
  • 敏感词过滤--DFA算法及代码案例
    我们应该都遇见过敏感词过滤,比如当我们输入一些包含暴力或者色情的文本,系统会阻止信息提交。敏感词过滤就是检查用户输入的内容有没有敏感词,检查之后有两个策略。直接阻止信息保存,接口返回错误信息允许信息保存,但是会把敏感词替换为***不管是哪种策略,首先都得找到是否包含敏......
  • 清除SQL Server数据库日志(ldf文件)的几种方法
    随着系统运行时间的推移,数据库日志文件会变得越来越大,这时我们需要对日志文件进行备份或清理。  随着系统运行时间的推移,数据库日志文件会变得越来越大,这时我们需要对日志文件进行备份或清理。  解决方案1-直接删除本地ldf日志文件:(比较靠谱方案!)  1.......
  • 2023年字节阿里等大厂Android岗秋招(校招)它来了,行情预测和面试题汇总
    写在前面前段时间的金三银四相信大家的找工作和面试,有的人从里面收获了心仪的offer;有的人走了一趟,收获寥寥,不甚满意;还有的人在观望,等待下一个良机。那么6月份快过去了,秋招它要来了!!!6.12,科大讯飞“飞行计划”正式启动,整整提前了1个星期!6.14,麦肯锡2024秋招全面启动,比去年提前了半......
  • 【备战金九银十】分享2023 Android中高级面试题大全
    都说今年互联网行情很差,Android行情更差。但到底怎么样呢,不能光听别人说,而要自己走出去看一看。还有两个月就要到金九银十了,那么如何准备即将来临的面试热潮呢?运筹帷幄之后,决胜千里之外!小编从来不打没有准备的战,不管是笔试还是面试都是有章可循的!!面试题,注意看!!非常重要!!对于程序员来......
  • 【Android Kotlin】全网最全的Android Kotlin入门教程指南,入股不亏
    前言2017年的谷歌大会上,Kotlin被指定为官方的Android开发语言,从长远的角度来看,Kotlin语言是作为Android开发者必须要掌握的一门编程语言。Kotlin编程语言极易上手,而且它不像Java那样代码繁琐,Kotlin代码更简洁,可读性也更强,可以花更少的时间来编写和理解代码,极大地提高了工作效率,不仅......
  • 【numpy基础】--数组过滤
    在numpy中,数组可以看作是一系列数值的有序集合,可以通过下标访问其中的元素。处理数组的过程中,经常需要用到数组过滤功能。过滤功能可以在处理数据时非常有用,因为它可以使数据更加干净和可读性更强。例如,在进行数据分析时,通常需要去除异常值,过滤掉不必要的元素可以使数据更加易于......
  • 【QoS预测】基于深度协同过滤的位置感知QoS预测
    论文题目:JiaZ,JinL,ZhangY,etal.Location-AwareWebServiceQoSPredictionviaDeepCollaborativeFiltering[J].IEEETransactionsonComputationalSocialSystems,2022.问题:目前有大量具有类似功能的web服务,用户根据服务质量(QoS)选择最佳。因此,QoS预测是服务推......
  • Android SDK安全加固问题与分析
    作者|百度APP技术平台导读在移动互联网快速发展的背景下,保护Android应用程序的安全性和知识产权变得尤为重要。为了防止恶意攻击和未授权访问,通常采用对dex文件进行代码加固来保护应用程序。随着Android加固技术经过动态加载、不落地加载、指令抽取、java2cpp、VMP等技术不断演进......