积分300 / 贡献0

提问5答案被采纳4文章45

[经验分享] OpenHarmony单模块welog打印机制 原创

润开鸿_闻飞 显示全部楼层 发表于 2024-6-8 20:56:40

itopen组织 1、提供OpenHarmony优雅实用的小工具 2、手把手适配riscv + qemu + linux的三方库移植 3、未来计划riscv + qemu + ohos的三方库移植 + 小程序开发 4、一切拥抱开源,拥抱国产化

一、welog介绍

设计这个welog主要是因为OpenHarmony官方的hilog打印的太多,各个模块的混合在了一起,如果仅仅针对某个独立模块,往往不太容易查看,其次有时候需要和芯片厂家联调闭源库时,有时候因为闭源库并非基于OpenHarmony框架编译的,往往无法使用hilog进行打印。

welog的机制是通过操作驱动/dev/welog节点,将要打印的内容传给内核,然后通过内核将内容写入文件中。

二、welog实现的功能

  • welog会在log中自动加入进程id、线程id、文件名、函数名、行号和换行
  • welog支持单条最大1M大小的log
  • 对应长度小于1K的log保存在/data/log/welog/welog.log中
  • 对应长度大于1K的log保存在/data/log/welog/large.log中
  • 可通过配置WELOG_LOG_TAG宏的值控制log保存的文件名
  • welog可以使用三种打印方式:welog_debug、welog_info和welog_err
  • welog仅仅支持C语言和C++语言的调测
  • welog机制因仅仅作为个人单模块调测使用,因此并没有考虑多线程和性能等
  • 建议功能调测后直接关闭或者将welog.h中ENABLE_WELOG设置为0即可

三、welog适配

welog的代码保存在itopen: module_code中,适配过程需要做以下两点:

  • C/welog/driver/welog目录放到内核的driver下,同时将driver下的Kconfig和Makefile中添加welog的调用
  • C/welog/include/welog.h文件放到任意目录下,如果要使用直接将 welog.h头文件加入即可,建议放在公共目录下

©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部