easylog的引入

一.概述

在我们实际调试代码时,很多时候都需要用串口打印出调试信息,帮助定位问题。一般我们用printf()函数就可以了。但是用printf打印的信息太多以后,面对满屏的信息容易眼花缭乱。easylog是个开源的log输出的工具,代码量小,功能强大。可以按照不同的等级(不同等级输出信息颜色不同),或者按照标签屏蔽部分信息,或者按照关键字屏蔽部分信息。 EasyLogger 是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的 C/C++ 日志库,非常适合对资源敏感的软件项目

二.基础-ANSI转义协议及编译器自带的宏

1.编译器自带的宏

_FILE_:当前语句所在的文件名(字符串)

_LINE_:当前语句所在的行数(整型)

_TIME_:当前时间

_DATA_:

2.ANSI颜色转义协议

使用ANSI颜色协议我们可以指定串口打印的文字的字号,颜色等。但是一般的串口工具不支持ANSI协议,所以显示不出对应的效果,用xshell可以。

举例:

printf("\033[1;31;47mhello\033[om")//打印一个1号字体,前景色红色,背景色白色的hello字符串按照上述方式就可以输出有颜色的信息了,然后搭配内置的宏就可以定位信息的位置。但是这样实现太过复杂,所以我们下面介绍easylog

三.EasyLog的使用

1.easylog简介

easy是github上的开源软件,它的下载地址位于 https://github.com/armink/EasyLogger.

以下是功能简介:

2.easylog的打印等级

easylog的打印等级包括普通信息错误警告等。不同等级的信息颜色不一样。

(1)以下是easylog支持的所有等級的打印信息:
以下是用elog_i()打印出的信息示例:

3.easylog标签LOG_TAG的使用

当我们在easylog输出的.c文件中定义LOG_TAG以后,easylog输出的信息中就会有这个信息,一般我们会把LOG_TAG定义为文件名,这样通过打印信息,我们就能定位当相应的.c文件,例如上面的图中,就是定义了#define LOG_TAG MAIN,打印的信息里面就有这个内容了。

4.easylog的静态分級过滤功能

静态log过滤是在编译阶段就确定的。

静态过滤在代码方面的优缺点: 优、会让代码减小 占用更少的ROM 劣、相关log会物理剔除。

我们通过修改宏定义就可以过滤一些等级:

默认过滤等级为ELOG_LVL_VERBOSE(5),也就是所有等级信息都打印

5.easylog的动态分級过滤功能

(1)分级过滤

等级0~5,比如设置了4,那就只打印0~4等级的

(2)按标签过滤

(3)按关键字过滤

比如关键字是“is”那就只会打印包含is的信息。

四.easyLog的移植

1.下载easylog源文件并添加到项目中

(1)下载的源文件

下载地址:github.com/armink/easylogger

(2).添加文件到项目中

2.easylog的模式配置

easylog有三种模式:

1.异步方式:

2.同步缓冲模式:要发送的数据先放到一个数组缓冲区中,只有缓冲区填满,串口才会发送

3.同步方式

由于我们在项目中使用的是同步方式,所以需要对elog_cfg.h进行配置

3.easylog需要我们事先的几个函数

elog_port.c为elog的接口函数,在这个函数中,需要我们实现几个函数

(1)底层串口发送函数

(2)新建一个互斥锁信号量

可以在elog.c中新建,elog_port.c中用extern调用。

(3)实现上锁/解锁函数

elog工作的时候,为了保护临界资源,会有上锁和解锁的操作,这两个函数在elog_port.c中,

需要我们编写内部实现函数

4.elog的使用

(1).初始化

在main中首先要調用elog_init()初始化

(2)调用功能函数

以下是elog的一些功能函数,不同功能函数打印的字体颜色不一样,以区别不同等级的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小吴的嵌入式笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值