我正在从事嵌入式项目,为了调试目的在代码中记录信息非常方便,但完全成熟的 C++ 记录器库在嵌入式环境中几乎不可用。 你能建议如何实现简单、干净和快速的日志记录模块吗?我真的不需要对日志记录后端、输出、级别等进行精细控制。我只想启用和禁用日志记录语句而不混淆代码。目前我是这样做的:
#define DEBUG_ENCODER_PRINTF
// ...
#ifdef DEBUG_ENCODER_PRINTF
debug_printf("enc: %d %d\r\n",
get_encoder_unwrapped(0),
get_encoder_unwrapped(1));
#endif
但我已经有几十种不同的日志记录语句,而且大量的预处理器定义让代码看起来很难看。
最佳答案
如果您这样做,您可以消除那些讨厌的 #ifdef
和 #endif
:
#ifdef DEBUG_ENCODER_PRINTF
#define debug_encoder_printf debug_printf
#else
#define debug_encoder_printf(...)
#endif
debug_encoder_printf("hi")
现在将在定义 DEBUG_ENCODER_PRINTF
时调用 debug_printf
,但如果未定义,则整个“调用"将被预处理器删除(替换为空)。
关于c++ - C++ 的最小条件日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34011171/