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 ``\ 然后分别设置组件log、文件log、私有log。 .. code:: c #include 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`` - 文件log管理 - 静态开关 在对应的\*.c文件中,加入此行代码,注意,不管是开或者关,必须选择一种。 ``默认就是开`` ``#define BLOG_HARD_DECLARE_DISABLE 1 // 关`` - 软件开关 通过输入如下命令来使能log输出等级 形如,blogset level component\_name.file\_name例如: ``blogset info blog_testc.blog_testc2_full`` - 私有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`` 总结 ----