8. blog¶
8.1. 概述¶
blog 是一款超轻量级的日志组件,非常适合对资源敏感的软件项目.
8.2. 功能介绍¶
blog 将log简化成3类,分别是组件、文件、私有log,且分别支持软件动态修改、宏彻底关闭方案(不占用rom)。下文统称动态修改为软开关,宏彻底关闭方案为静态开关。
组件log管理 该log优先级最高,如下的文件log和私有log均受此开关的束缚
文件log管理 该log优先级中,如下的私有log均受此开关的束缚,且文件log受到组件log的管理。
私有log管理 该log优先级最低,受组件log和文件log管理
8.3. log等级说明¶
按照等级高低分别如下,其中all最低,即所有log均输出
all : 所有log均输出,其实等同于all
debug : debug及以上
info : info及以上
warn : warn及以上
error : error及以上
assert : assert及以上
never: 所有log均不输出,其实等同于assert
8.4. 使用方法¶
包含必要的头文件
#include <blog.h>
然后分别设置组件log、文件log、私有log。
#include <blog.h>
BLOG_DECLARE(blog_testc2);
void func(void)
{
blog_debug("blog_testc2 debug\r\n");
blog_info("blog_testc2 info\r\n");
blog_warn("blog_testc2 warn\r\n");
blog_error("blog_testc2 error\r\n");
blog_assert("blog_testc2 assert\r\n");
blog_debug_user(blog_testc2,"blog_testc2 debug user\r\n");
blog_info_user(blog_testc2,"blog_testc2 info user\r\n");
blog_warn_user(blog_testc2,"blog_testc2 warn user\r\n");
blog_error_user(blog_testc2,"blog_testc2 error user\r\n");
blog_assert_user(blog_testc2,"blog_testc2 assert user\r\n");
}
组件log开关
静态开关 在相应的 proj_config.mk 文件目录下,LOG_ENABLED_COMPONENTS配置上增加对应组件的名字 例如这里需要增加blog_testa blog_testb blog_testc组件静态开关,其他组件默认关闭
LOG_ENABLED_COMPONENTS:=blog_testa blog_testb blog_testc
软件开关 通过输入如下命令来使能log输出等级 形如,logset level component_name例如:
blogset assert blog_testc
文件log管理
静态开关 在对应的*.c文件中,加入此行代码,注意,不管是开或者关,必须选择一种。
默认就是开
#define BLOG_HARD_DECLARE_DISABLE 1 // 关
软件开关 通过输入如下命令来使能log输出等级 形如,logset level component_name.file_name例如:
blogset info blog_testc.blog_testc2_full
私有log管理
静态开关 使用就增加BLOG_DECLARE(...),不用直接不增加此行即可。
BLOG_DECLARE(blog_testc2); // 打开,其中 "blog_testc2"为用户自定义
软件开关 通过输入如下命令来使能log输出等级 形如,logset level component_name.file_name.pri_name例如:
blogset debug blog_testc.blog_testc2_full.blog_testc2