OpenHarmony开发者论坛

标题: OpenHarmony单模块welog打印机制 [打印本页]

作者: 润开鸿_闻飞    时间: 2024-6-8 20:56
标题: OpenHarmony单模块welog打印机制
[md][itopen组织](https://gitee.com/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](https://gitee.com/itopen/module_code.git)中,适配过程需要做以下两点:

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




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5