当前位置: 首页 > 编程笔记 >

Python实现过滤单个Android程序日志脚本分享

颛孙子民
2023-03-14
本文向大家介绍Python实现过滤单个Android程序日志脚本分享,包括了Python实现过滤单个Android程序日志脚本分享的使用技巧和注意事项,需要的朋友参考一下

在Android软件开发中,增加日志的作用很重要,便于我们了解程序的执行情况和数据。Eclipse开发工具会提供了可视化的工具,但是还是感觉终端效率会高一些,于是自己写了一个python的脚本来通过包名来过滤某一程序的日志。

原理

通过包名得到对应的进程ID(可能多个),然后使用adb logcat 过滤进程ID即可得到对应程序的日志。

源码


#!/usr/bin/env python

#coding:utf-8

#This script is aimed to grep logs by application(User should input a packageName and then we look up for the process ids then separate logs by process ids).

import os import sys

packageName=str(sys.argv[1])

command = "adb shell ps | grep %s | awk '{print $2}'"%(packageName) p = os.popen(command) ##for some applications,there are multiple processes,so we should get all the process id pid = p.readline().strip() filters = pid while(pid != ""):     pid = p.readline().strip()     if (pid != ''):         filters = filters +  "|" + pid         #print 'command = %s;filters=%s'%(command, filters) if (filters != '') :     cmd = 'adb logcat | grep --color=always -E "%s" '%(filters)     os.system(cmd)

使用方法


python logcatPkg.py com.mx.browser

最新代码


#!/usr/bin/env python

#coding:utf-8

#This script is aimed to grep logs by application(User should input a packageName and then we look up for the process ids then separate logs by process ids).

import os import sys

packageName=str(sys.argv[1])

command = "adb shell ps | grep %s | awk '{print $2}'"%(packageName) p = os.popen(command) ##for some applications,there are multiple processes,so we should get all the process id pid = p.readline().strip() filters = pid while(pid != ""):     pid = p.readline().strip()     if (pid != ''):         filters = filters +  "|" + pid         #print 'command = %s;filters=%s'%(command, filters) if (filters != '') :     cmd = 'adb logcat | grep --color=always -E "%s" '%(filters)     os.system(cmd)

不足

当脚本执行后,Android程序如果关闭或者重新启动,导致进程ID变化,无法自动继续输出日志,只能再次执行此脚本。

 类似资料:
  • 本文向大家介绍python实时分析日志的一个小脚本分享,包括了python实时分析日志的一个小脚本分享的使用技巧和注意事项,需要的朋友参考一下 前言 大家都知道Web运维总要关注相关域名的实时2xx/s、4xx/s、5xx/s、响应时间、带宽等这些指标,之前的日志是五分钟一分割,简单的用awk就可以了,现在由于要推送日志到ELK,继续之前五分钟一分割会有问题,就改为一天分割一次。改成一天一分割后,

  • 本文向大家介绍python+logging+yaml实现日志分割,包括了python+logging+yaml实现日志分割的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python+logging+yaml实现日志分割的具体代码,供大家参考,具体内容如下 1、建立log.yaml文件 2、在自己的app.py中引用log.yaml 之后就可以在需要日志的业务节点上使用logger.

  • 本文向大家介绍python实现定时提取实时日志程序,包括了python实现定时提取实时日志程序的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python定时提取实时日志的具体代码,供大家参考,具体内容如下 这是一个定时读取 实时日志文件的程序。目标文件是target_file. 它是应用程序实时写入的。 我要做的是,每个5秒钟,提取一次该日志文件中的内容,然后生成另一个文件,最后把

  • 本文向大家介绍Shell脚本实现apache日志中的状态码分析,包括了Shell脚本实现apache日志中的状态码分析的使用技巧和注意事项,需要的朋友参考一下 一、首先将apache日志按天切割 二、重启apache服务 ##################apahce日志服务器按天切割完毕###################### 三、分析生成的apache日志状态码(等待了一天的日志) 执行

  • 本文向大家介绍Python实现的简单发送邮件脚本分享,包括了Python实现的简单发送邮件脚本分享的使用技巧和注意事项,需要的朋友参考一下 近来有些东西需要监控报警发邮件,然后在网上找了点材料,自己写了一个简单发送邮件的脚本,主要就是运用python的smtplib模块,分享给大家看一下:

  • 本文向大家介绍使用Filter过滤python中的日志输出的实现方法,包括了使用Filter过滤python中的日志输出的实现方法的使用技巧和注意事项,需要的朋友参考一下 事情是这样的,我写了一个tornado的服务,过程当中我用logging记录一些内容,由于一开始并没有仔细观察tornado自已的日志管理,所以我就一般用debug来记录普通日志,error记录有问题的日志,但是当服务跑起来以后