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