抓取android日志,Android抓取所有日志

总有些时候我们会遇到非必现场景,若未及时抓取日志,可能为时已晚

抓取日志

抓取Logcat日志

这个是最简单的,使用-f重定向到一个文本文件即可,-v threadtime则显示详细时间和进程

# for logcat

{

log -t logcat_all "start logcat to file: $logcat_file"

/system/bin/logcat -v threadtime -f $logcat_file

} &

抓取Kmsg日志

通过抓取/proc/kmsg来完成

# for kmsg

{

log -t logcat_all "start kmsg to file: $kmsg_logfile"

cat /proc/kmsg >$kmsg_logfile

} &

抓取Top日志

通过抓取Top可以看到系统运行时,占用CPU的情况等等

# for top

{

while busybox true; do

top_newtime=$(/system/bin/date +%F_%H-%M-%S)

top_logfile=$logcat_dir/top_${top_newtime}.log && > $top_logfile

log -t logcat_all "start top to file: $top_logfile"

# 仅保留5个top日志文件

# 5*100*3=25分钟内的Top信息,避免Top日志文件过大

busybox rm -f $(busybox ls -1t ${logcat_dir}/top_* | busybox tail -n +6)

for n in $(busybox seq 1 100) ; do

# 每3秒打印一次top信息,并加入时间显示

top -m 5 -d 3 -t -n 1 | busybox awk '{now=strftime("%Y-%M-%d %T "); print now $0}' >>$top_logfile

echo >>$top_logfile

done

done

} &

为了方便分析结果,这里添加了详细时间,同时限定了Top输出大小(避免SD卡占用过快)

抓取vmstat日志

通过抓取vmstat日志,可分析的系统信息就更多了

# for vmstat

{

while busybox true; do

log -t logcat_all "start vmstat_ to file: $vmstat_logfile"

vmstat_newtime=$(/system/bin/date +%F_%H-%M-%S)

vmstat_logfile=$logcat_dir/vmstat_${vmstat_newtime}.log && > $vmstat_logfile

busybox rm -f $(busybox ls -1t ${logcat_dir}/vmstat_* | busybox tail -n +6)

/system/bin/vmstat -d 3 -n 100 | busybox awk '{now=strftime("%Y-%M-%d %T "); print now $0}' >$vmstat_logfile 2>&1

done

} &

同时也添加了详细的时间输出,方便分析

开机运行

在init.rc添加一个Service,当系统已正常启动完成时,执行抓取日志

service logcat_all /system/bin/logcat_wrapper.sh

class main

disabled

oneshot

on property:dev.bootcomplete=1

start logcat_all

其中,logcat_wrapper.sh内容如下:

#!/system/bin/sh

{

/system/bin/busybox nohup /system/bin/logcat_all.sh > /dev/null 2>&1 &

} &

使用nohup执行,避免脚本被杀死,而logcat_all.sh则见此链接 logcat_all.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值