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++ 日志库
/usr/bin/ld: out/elog_file.o: in function `elog_file_write': /home/rhytech/Documents/elog/EasyLogger/demo/os/linux/../../../easylogger/plugins/file/elog_file.c:120: undefined reference to `elog_file_port_lock' /usr/bin/ld: /home/rhytech/Documents/elog/EasyLogger/demo/os/linux/../../../easylogger/plugins/file/elog_file.c:142: undefined reference to `elog_file_port_unlock' /usr/bin/ld: out/elog_file.o: in function `elog_file_config': /home/rhytech/Documents/elog/EasyLogger/demo/os/linux/../../../easylogger/plugins/file/elog_file.c:160: undefined reference to `elog_file_port_lock' /usr/bin/ld: /home/rhytech/Documents/elog/EasyLogger/demo/os/linux/../../../easylogger/plugins/file/elog_file.c:176: undefined reference...
请问如何实现动态关闭打印呢?比如我现在有多种输出方式,我希望在某些时刻只调用文件输出,而另一些时候则打印到控制台
1. 判断当前log输出上下文 2. 中断上下文与任务上下文使用单独输出buffer 3. 不支持中断嵌套模式下中断输出调用 4. 添加接口判断是否处于中断上下文 hi 你好: 我希望实现该log日志输出支持在中断上下文进行,相关代码修改请问是否合适
elog_async.c文件报错 missing binary operator before token "(" #if PTHREAD_STACK_MIN > 4*1024 | ^~~~~~~~~~~~~~~~~ 当在#include之前添加如下语句时编译通过。疑似系统库文件发生了变化导致PTHREAD_STACK_MIN未找到。 #include ========= [gpadmin@tbtc9 src]$ gcc -v 使用内建 specs。 COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/11/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 目标:x86_64-redhat-linux 配置为:../configure --enable-bootstrap --enable-host-pie...
https://github.com/armink/EasyLogger/blob/8585ed801d8ae57af6f2bc41ada8107a0eca44de/easylogger/src/elog_async.c#L149-L153 这边直接丢弃了后面部分的log,是否会导致丢失了'\0',ELOG_NEWLINE_SIGN和着色结尾之类的?
怎么在Ubuntu20.4的系统中使用easylogger
在Fatfs+FreeRTOS系统中使用的话,需要添加哪些文件,在elog_file中将open,close,write接口函数换成FatFs的吗? 另外,里面有很多return的地方,在FreeRTOS的任务中进行记录log的话return后所在任务就不执行了,怎么处理?
RTOS环境下,如果在timer或者ISR中调用了log的API就可能会引起异常,在timer或者ISR中调用mutex或者sem通常会返回失败,此时如果放弃此次log就能避免此次log造成的异常
我有个想法就是把等级过滤和标签的过滤接口改成动态,这样的话,我这边写一个linux命令,例如“app_log_level_set” 实时配置打印的等级,可以很有效的过滤一些信息,提高效率
1.使用Easylogger测试了一天,发现在高频率打印日志,如使用for循环一直打印的情况下,会大量地丢失日志,并且到一定数量之后就不再打印了(和ELOG_ASYNC_OUTPUT_BUF_SIZE有关)。 2.在最高异步等级ELOG_ASYNC_OUTPUT_LVL设置为ELOG_LVL_ASSERT的情况下,用for循环打印1000万条日志,如果调用的是Assert等级,就只能打印几万条日志,调用Info等级,可以打印几十万到百万条日志。但按理来说这俩应该是一样的水平。 3.异步输出时是否可以将需要打印的日志放入缓冲区,等待一定时间或缓冲区满再写入文件。来一条日志就让写入线程对文件进行读写的磁盘io开销过大,批量写入往往可以解决日志库的性能瓶颈。现在的缓冲输出和异步输出是不兼容的,是否可以结合一下。