为什么要引入日志系统
作为一名程序员,日常产品开发中,日志系统是一个不可或缺的组件,没有很难玩转程序的开发调试和Bug修复。
EasyLogger
在产品开发中,经过多轮的分析对比,EasyLogger资源消耗较小,灵活可控的优势满足嵌入式产品的开发。
$ git clone https://gitee.com/Armink/EasyLogger.git
Cloning into 'EasyLogger'...
remote: Enumerating objects: 1991, done.
remote: Counting objects: 100% (258/258), done.
remote: Compressing objects: 100% (202/202), done.
remote: Total 1991 (delta 52), reused 242 (delta 45), pack-reused 1733
Receiving objects: 100% (1991/1991), 3.47 MiB | 97.00 KiB/s, done.
Resolving deltas: 100% (786/786), done.
根目录
代码目录
头文件
elog.h 是日志模块的统一的头文件包括,日志上下文,日志等级,日志tag,日志过滤器,日志扩展信息,日志颜色显示等等定义
elog_cfg.h 是日志模块的配置文件,包括日志使用到的缓存大小,默认等级等等配置
关联存储插件
日志移植相关
/**
* EasyLogger port initialize
*
* @return result
*/
ElogErrCode elog_port_init(void) {
ElogErrCode result = ELOG_NO_ERR;
/* add your code here */
return result;
}
/**
* EasyLogger port deinitialize
*
*/
void elog_port_deinit(void) {
/* add your code here */
}
/**
* output log port interface
*
* @param log output of log
* @param size log size
*/
void elog_port_output(const char *log, size_t size) {
/* add your code here */
}
/**
* output lock
*/
void elog_port_output_lock(void) {
/* add your code here */
}
/**
* output unlock
*/
void elog_port_output_unlock(void) {
/* add your code here */
}
/**
* get current time interface
*
* @return current time
*/
const char *elog_port_get_time(void) {
/* add your code here */
}
/**
* get current process name interface
*
* @return current process name
*/
const char *elog_port_get_p_info(void) {
/* add your code here */
}
/**
* get current thread name interface
*
* @return current thread name
*/
const char *elog_port_get_t_info(void) {
/* add your code here */
}
源代码
重要代码的调用关系