开源嵌入式代码分析——EasyLogger

开源嵌入式代码分析——EasyLogger

本文不提供移植使用说明,只进行代码分析

简介

EasyLogger是对智能<1.6K, RAM<0.3K等级别(ROM<1.6K, RAM<0.3K)、资源库的C/C++日志,非常适合敏感的软件项目,例如:IoT产品、可穿戴设备、家居相比 log4c、zlog 知名的 C/C++ 库,EasyLogger 的功能简单,提供给用户的插件接口更多的接口,但以动态形式进行上手会像实用功能支持扩展扩展。
地址:https://github.com/armink/EasyLogger

风格

函数及变量名采用下划线 例如

static const char *level_output_info[];
void elog_port_output(const char *log, size_t size);

而结构体定义则采用大驼峰例如:

typedef struct {
    uint8_t level;
    char tag[ELOG_FILTER_TAG_MAX_LEN + 1];
    bool tag_use_flag; /**< false : tag is no used   true: tag is used */
} ElogTagLvlFilter, *ElogTagLvlFilter_t;

文件路径&架构图

整个文件夹及代码非常清晰,核心代码easylogger文件下分了3个文件夹和7个文件,inc头文件路径,移植的时候只需要包含inc路径就可以,引用则只需要#include “elog.h”。port移植接口,与底层相关的代码实现,src是核心代码实现。

-easylogger // 核心代码
----inc // 头文件文件夹
------elog.h // 引用需要的头文件
------elog_cfg.h // 配置文件
----port
------elog_port.c // 接口文件
----src
------elog.c
------elog_async.c
------elog_buf.c
------elog_utils.c
-------------------------------------------------------------------------、
----plugins // 可选的文件系统和flash
--------file
--------flash
-demo // 相关例程
----non_os
----os
-docs // 文档说明

接口

plugins-文件

plugins-Flash

说明

cubeide + fatfs + easylogger
不能包含#include “sd_diskio.h”
改成#include "./drivers/sd_diskio.h"编译通过。问题待查

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值