专栏算法工具链Log管理

Log管理

TROS.Assist2024-03-20
78
0

Log进程

  1. 进程信息

    • 板端log进程运行信息
      Description
    • 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文件转存成固定格式文件,管控各个分区目录的存储空间, 超过固定容量会进行删除,删除时间比较早产生的文件

  2. 启动顺序

    log管理方式

    log的文件生成和目录空间管控主要是由hobot-log脚本去管理的

  3. 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中去设置的

  4. 用户定制log系统

    • 日志命名修改

      • 在hobot-log中修改,具体的修改功能逻辑是check_log函数实现的

        • $1:log产生的原始目录

        • $2:log根据原始文件去转存的目录

        • $3:log文件命名的前缀

        • $4:log文件命名的后缀

        • $5:log文件的限制的最大数量

          Description
      • 具体使用范例

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

        Description
    • log进程的裁剪

      • 可以通过增删init.rc中对于start_log的针对各个log模块的启动,去定制自己的log进程

      • 同时推荐有新的开发功能加入时,也使用start_log的脚本作为媒介配置,init.rc来集成

        Description
  5. log回读

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

算法工具链
杂谈
评论0
0/1000