原创精简版MCU打印输出的代码,方便扩展

2019-12-21 12:10发布

本帖最后由 怂包BB 于 2018-2-8 09:35 编辑

打印log的开源代码还是easylogger功能强大,在使用过程中有些功能用不到,因此做了个精简的,功能简单但是人性化的打印输出的开源代码b_log。
代码极其简单,大神勿喷!
主要的目的如下:
1、支持分级别打印,info, warning, error, assert
2、支持每个C文件里面的打印单独控制是否输出
3、支持限定当前允许的打印级别
4、支持每个级别单独配置额外参数

主要接口如下:
  1. #define log_i(...)                           /**< information log      */
  2. #define log_w(...)                           /**< warning log          */
  3. #define log_e(...)                           /**< error log            */
  4. #define log_a(cond, ...)                     /**< assert log           */
复制代码

主要功能:
(所有配置在b_log_config.h)

使用流程:
1、打印等级配置
  1. #define B_LOG_LEVEL_CFG    B_LOG_LEVEL_I
复制代码
2、每个C文件可以单独配置是否打印
  1.    1、设置 B_LOG_CTRL_TOGETHER  0
  2.    #define B_LOG_CTRL_TOGETHER            0
  3.    2、在每个C文件,include "b_log.h"上面如果加了 #define B_LOG_ENABLE 那么这个C文件里的打印有效反之无效
复制代码
3、V0.0.1不支持缓存。
4、在b_log_port.c里完成一个字符串打印输出即可使用
5、配置每个级别打印的额外参数:
  1.    #define B_LOG_I_LEVEL_PARAM    (B_LOG_PARAM_NULL)  
  2.    #define B_LOG_W_LEVEL_PARAM    (B_LOG_PARAM_FUNC | B_LOG_PARAM_LINE)
  3.    #define B_LOG_E_LEVEL_PARAM    (B_LOG_PARAM_FILE | B_LOG_PARAM_FUNC | B_LOG_PARAM_LINE)
  4.    #define B_LOG_A_LEVEL_PARAM    (B_LOG_PARAM_FILE | B_LOG_PARAM_FUNC | B_LOG_PARAM_LINE)
复制代码
   可选择性打印函数名、文件名、行号

目前在nordic的板子上测试了一下:
  1.           log_i("helloworld %s ", "information");
  2.           log_w("helloworld %s ", "warning");
  3.     log_e("helloworld %s ", "error");
  4.                 log_a(0, "helloworld %s ", "assert");
复制代码
QQ截图20180208091738.png (8.63 KB, 下载次数: 0) 下载附件 2018-2-8 09:27 上传

https://github.com/notrynohigh/b_log

b_log-master.rar (6.54 KB, 下载次数: 47) 2018-2-8 09:32 上传 点击文件名下载附件

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。