Log进程
进程信息
- 板端log进程运行信息

kernel: klogd+syslogd
获取内核记录的消息,将消息数据转存成文件
usr: ALOG(libalog.so)+logcat
通过ALOG接口向log buffer写入log信息,logcat从log buffer中提取数据到文件中
remoteproc_log:hrut_remoteproc_log进程
log记录:通过remoteproc节点获取mcore,DSP,BL31的log信息,将其写入文件中
log管控:根据输入参数中的log文件大小和数量限制去管控log的存储空间
日志管理:hobot-log
log记录:记录reset,pstore,uboot的log信息
log管理:定期将原始log文件转存成固定格式文件,管控各个分区目录的存储空间, 超过固定容量会进行删除,删除时间比较早产生的文件
启动顺序
log管理方式
log的文件生成和目录空间管控主要是由hobot-log脚本去管理的
hobot-log
log生成:
系统每次启动时去转存log,log文件命名格式如下
J5_Uboot-count-time.Log:当系统启动时,将uboot log转存到uboot的archive目录下
J5_Pstore-count-time(文件夹):当系统启动时,如果检测到上次系统是异常重启,则创建该格式文件夹,并将对应的异常log信息记录到该文件夹下
系统运行过程中每10分钟去转存log,文件转存到各个模块的archive目录下,log文件命名格式如下
- J5_Kernel-count-time_.Log
- J5_Usr-count-time_.Log
- J5_Bl31-count-time_.Log
- J5_Dsp0-count-time_.Log
- J5_Dsp1-count-time_.Log
- J5_Mcore-count-time_.Log
log文件命名格式解析示例: J5_Kernel-0003-2022_05_01_08_01_00_131599.Log
- 命名说明: [board][module]-[count]-[time].Log
board: J5
module: Chip, Kernel, Usr, Bl31, Dsp0, Dsp1, Mcore, Uboot, Pstore首字母大写
count: 4位数字,0000到9999,示例中代表第3次重启
time:如2022_05_01_08_01_00
inode:如131599,但正常情况下没有,只有当出现同一时间转存多个文件命名存在重合时,加入inode节点来做区分
容量管控:
一开始划分不同的log目录空间容量,每10分钟针对指定的目录容量去检索空间,如果容量超过,将会按照文件生成时间排序,删除产生时间比较早的文件
hobot-log
管理着usr、kernel、remoteproc_log、pstore、uboot的空间,对应的数量限制由内部参数设定
hrut_remoteproc_log:
log的大小和数量也是由进程自身管理的,对应的参数配置是hobot-log中去设置的
用户定制log系统
日志命名修改
在hobot-log中修改,具体的修改功能逻辑是check_log函数实现的
$1:log产生的原始目录
$2:log根据原始文件去转存的目录
$3:log文件命名的前缀
$4:log文件命名的后缀
$5:log文件的限制的最大数量

具体使用范例
可以使用check_log第3,4,5个参数来去定义log的文件命名格式以及限制log的文件数量

log进程的裁剪
可以通过增删init.rc中对于start_log的针对各个log模块的启动,去定制自己的log进程
同时推荐有新的开发功能加入时,也使用start_log的脚本作为媒介配置,init.rc来集成

log回读
log-service demo会针对log的分区目录每隔一段时间进行文件上传,此过程不去压缩log

