我是否应该在C++库中使用日志记录

Should I use logging in a C++ library

本文关键字:日志 记录 C++ 是否      更新时间:2023-10-16

所以我问的是关于这个话题的一般建议。我正在开发一个用于数值计算的C++库,但是在开发过程中,我发现当有一个标志来启用某种形式的日志记录时,它对于调试很有用,这样我就可以检查出了什么问题。我的问题是这方面的可接受标准是什么?我是否应该为 DEBUG 定义一些宏,以便在它没有定义时不会发生 DEBUG?我应该使用日志记录库和日志内容吗?

正如上面的评论所提到的,您的问题没有一般答案 - 这取决于情况和个人意见。我个人主要使用

#ifdef DEBUG
// logging here
#endif
我的

代码中的块(与我的一些专门的DEBUG_PRINT宏相结合,这些宏打印附加信息,例如变量的名称和类型等)。然后,我只需将 -DDEBUG 标志传递给编译器即可全局启用所有 DEBUG 日志记录。(我通常使用 cmake,所以我在所有调试版本中默认传递此标志)我不知道这是否被认为是一种"可接受的"做法——它对我来说效果很好。