EasyLogger
EasyLogger copied to clipboard
An ultra-lightweight(ROM<1.6K, RAM<0.3k), high-performance C/C++ log library. | 一款超轻量级(ROM<1.6K, RAM<0.3k)、高性能的 C/C++ 日志库
easylogger支持输出到RTTView吗?能不能同时支持输出到rttview和文件?有的log希望输出到rttview,有的log希望输出到文件。
Easylogger 一些代码并不是可跨平台移植的,导致可移植的代码和port之间界限不是很清晰 比如elog_file.c使用了libc fopen/fwrite这些函数,虽然libc是标准的,但实际情况是很多嵌入式平台上没有,而使用的如fatfs, littefs等FS接口。进而要求用户手动改elog_file.c文件,其中关于file rotation的部分比较容易出错。最近在一个平台上使用easylogger的时候做了一些修改,在elog_file.c中使用一组自定义的简单文件接口,而在elog_file_port.c中只需要实现这些接口即可 elog_file_port.h ```c #define ELOG_FILE_INVALID_HANDLE -1 typedef int ElogFileHandle; /* file port */ ElogErrCode elog_file_port_init(void); #ifdef ELOG_FILE_LOCK_ENABLE void elog_file_port_lock(void); void elog_file_port_unlock(void); #define ELOG_FILE_LOCK() elog_file_port_lock() #define...
写FLASH/文件系统的操作,不应该在PORT层中,用户也许会希望控制某个级别的LOG,来决定是否写入FLASH/文件系统。 比如, assert, error, warning写入文件系统,而其他lv不写入。 目前我的做法是简单的复用了FMT,在elog.c中来决定是根据标志来决定是否写入文件/FLASH。 由于FMT是格式化用的,可能不是很妥当,但这样做法比较灵活,也可以单独设置一个FILE level,大于某个LV的来决定是否要写入文件。 ```c typedef enum { ELOG_FMT_LVL = 1
 在这个路径的示例的81行  ef_port_read() 函数中这样判断会出问题(例如size=1),最终会跳入中断HardFault_Handler 修改成这样似乎可以避免问题 
开发平台是IAR ,芯片是GD32
1. elog_file_config函数中打开配置文件的代码如下: if (local_cfg.name != NULL && strlen(local_cfg.name) > 0) fp = fopen(local_cfg.name, "a+"); } 2. elog_file_write这个函数中就直接对fp进行操作,而没有继续对文件指针进行判断,如果上面配置的文件不存在,这里会导致异常。
有日志老化功能吗
有日志老化功能吗?
再ubtuntu20.04上使用easylogger,将ELOG_TERMINAL_ENABLE宏定义关闭之后,可以关闭在终端的输出;但是通过交叉编译链将其移植到嵌入式平台上之后,发现ELOG_TERMINAL_ENABLE失效了,不管是打开还是关闭都会在终端输出数据?
大佬可以分享一下控制台命令交互设置日志的过滤信息的demo吗,就是readme里面通过命令去打开关闭宏和设置过滤信息的demo~感谢
在STM32上将EasyLogger输出到U盘中时,应该如何初始化,以及调用相关函数?