Android logcat log输出控制

2024-03-23 01:58
文章标签 输出 android 控制 log logcat

本文主要是介绍Android logcat log输出控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Android logcat log输出控制

  • 常用logcat
  • logcat针对tag打印控制
  • log buffer大小设置
  • log黑白名单
  • log设置查看
  • 输出到文件
  • logcat指定格式输出
  • 常用logk命令打印kernel log
  • log buffer
  • logcat和logk进程的启动

常用logcat

清除log

logcat -c

指定pid的log输出

logcat --pid=<pid>

logcat针对tag打印控制

Android log 通过系统属性persist.log.tag 和persist.log.tag.xxx决定相关log的指定等级及以上才可以写入logd,xxx是指某个tag,不过这个系统属性只能设置5个,而且TAG长度不能太长。

禁止所有log tag 输出,设置所有log S等级及以上的log才能输出,S等级最高,V等级最低

   setprop persist.log.tag S

使能所有log tag 输出,设置所有log V等级及以上的log才能输出

   setprop persist.log.tag V

//禁止log tag 为 mytag 输出,设置log tag 为 mytag S等级及以上的log才能输出

   setprop persist.log.tag.mytag S 

//使能log tag 为 mytag 输出,设置log tag 为 mytag V等级及以上的log才能输出

  setprop persist.log.tag.mytag V 

使用组合1:只打开log tag为audio的log:

  setprop persist.log.tag Ssetprop persist.log.tag.audio V

使用组合2:只禁止log tag为audio的log:

  setprop persist.log.tag.audio S

附:等级有VERBOSE,DEBUG,INFO,WARN,ERROR,FATA,SILENT

log buffer大小设置

永久设置所有缓冲区大小为8M,重启生效

  setprop persist.logd.size 8M

暂时设置所有缓冲区大小为4M,立即生效,但是ACC OFF/ON后失效

  logcat -G 4M

暂时设置main缓冲区大小为4M,立即生效

  logcat -b main -G 4M

log buffer大小查看

  logcat -g

log黑白名单

logd丢失log会先删除黑名单的log,然后删除普通log。最后还不够的话再删除白名单的log。 设置黑白名单。可以对UID,PID设置,也可以UID/PID一起设置。设置黑名单,前缀~

指令说明
logcat -P ~520881 ~/78883 ~52189/8883对UID 520881,对PID78883,对UID/PID 52189/8883 设置黑名单。
logcat -P 520881/666对UID/PID 520881/666设置白名单
logcat -p查看黑白名单

log设置查看

指令说明
logcat -k查看当前允许输出的log等级
logcat -gog buffer大小查看
logcat -s “log_tag1” “log_tag2”只允许某些log_tag输出
logcat “log_tag1:s” “log_tag2:s”不允许某些log_tag输出
logcat -b xxx查看xxxbuffer 的 log,logbuffer环形缓冲区在system/core/include/log/log.h中log_id中定义。有main,radio,event,system,crash,security,error,perf,kernel
logcat -b main查看main buffer log ,是我们平时正常使用的buffer,
logcat -b crash程序crash相关的log

输出到文件

logcat -v threadtime -f /data/log/log -r2048 -n 49 //-v :threadtime格式输出,-f指创建文件 /data/log/log,-r2048指每个文件大小20485k,-n 49 创建49+1个文件

logcat指定格式输出

设置输出格式的日志消息。默认是短暂的格式。支持的格式列表

logcat -v <format>
格式说明
brief显示优先级/标记和过程的PID发出的消息(默认格式)
process只显示PID
tag只显示优先级/标记
raw显示原始的日志消息,没有其他元数据字段
time调用显示日期、时间、优先级/标签和过程的PID发出消息
threadtime调用显示日期、时间、优先级、标签遗迹PID TID线程发出的消息
long显示所有元数据字段与空白行和单独的消息

常用logk命令打印kernel log

指令说明
logk -e 0关闭 kernel log 输出,user版默认为0
logk -e 1使能 kernel log 输出
logk -p查看 kernel log 状态
logk -f 文件打印 kernel log 到文件

log buffer

logd读取logdw时会对超过对应Android 原生 id(main,system etc)buffer大小进行裁剪,buffer大小在LogBuffer.cpp中"persist.logd.size","ro.logd.size"系统属性设置。该系统属性在device/fsl/tamago_1t(other)/BoardConfig.mk中ADDITIONAL_BUILD_PROPERTIES += ro.logd.size=2048k设置。

logcat和logk进程的启动

logcat输出log到文件,系统启动时会在init.rc: service elog_service /system/bin/logcat -v threadtime -f /data/log/log -r2048 -n 49(-v :threadtime格式输出,-f指创建文件 /data/log/log,-r2048指每个文件大小20485k,-n 49 创建49+1个文件)启动system/bin/logcat进程,该进程会一直在后台运行并读取logdr socket 的log。当有一个文件log写满的时候logcat.cpp中rotateLogs()函数就会对这些log文件进行循环滚动更新,由于log文件有0~49个,所以每次循环49次,因此循环次数#define DEFAULT_MAX_ROTATED_LOGS 49,kernel log则由logk负责输出不过log来源从kmsg文件中读取,init.rc中启动logk指令 service logk_service /system/bin/logk -f /data/log/kernel_log,logk.cpp中rotateLogs循环更新个数为4,所有输出kernellog0~4。

这篇关于Android logcat log输出控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/836783

相关文章

C++中实现调试日志输出

《C++中实现调试日志输出》在C++编程中,调试日志对于定位问题和优化代码至关重要,本文将介绍几种常用的调试日志输出方法,并教你如何在日志中添加时间戳,希望对大家有所帮助... 目录1. 使用 #ifdef _DEBUG 宏2. 加入时间戳:精确到毫秒3.Windows 和 MFC 中的调试日志方法MFC

Python使用Colorama库美化终端输出的操作示例

《Python使用Colorama库美化终端输出的操作示例》在开发命令行工具或调试程序时,我们可能会希望通过颜色来区分重要信息,比如警告、错误、提示等,而Colorama是一个简单易用的Python库... 目录python Colorama 库详解:终端输出美化的神器1. Colorama 是什么?2.

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

使用@Slf4j注解,log.info()无法使用问题

《使用@Slf4j注解,log.info()无法使用问题》在使用Lombok的@Slf4j注解打印日志时遇到问题,通过降低Lombok版本(从1.18.x降至1.16.10)解决了问题... 目录@Slf4androidj注解,log.info()无法使用问题最后解决总结@Slf4j注解,log.info(

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影