我是否应该在C++库中使用日志记录
Should I use logging in a C++ library
所以我问的是关于这个话题的一般建议。我正在开发一个用于数值计算的C++库,但是在开发过程中,我发现当有一个标志来启用某种形式的日志记录时,它对于调试很有用,这样我就可以检查出了什么问题。我的问题是这方面的可接受标准是什么?我是否应该为 DEBUG 定义一些宏,以便在它没有定义时不会发生 DEBUG?我应该使用日志记录库和日志内容吗?
正如上面的评论所提到的,您的问题没有一般答案 - 这取决于情况和个人意见。我个人主要使用
#ifdef DEBUG
// logging here
#endif
我的代码中的块(与我的一些专门的DEBUG_PRINT
宏相结合,这些宏打印附加信息,例如变量的名称和类型等)。然后,我只需将 -DDEBUG
标志传递给编译器即可全局启用所有 DEBUG 日志记录。(我通常使用 cmake,所以我在所有调试版本中默认传递此标志)我不知道这是否被认为是一种"可接受的"做法——它对我来说效果很好。
相关文章:
- 如何实现具有多个平台__FILE__和__LINE__信息的 C/C++ 可变参数日志记录宏?
- C++ 中混合二进制/文本日志记录的最佳做法
- 轻松日志记录++如何避免多个初始化
- 使用字符串流加速 std::cout 日志记录
- 我的游戏引擎的 spdlog 日志记录出现奇怪的"unresolved external symbol"错误
- 使用 #define 进行跟踪日志记录以避免性能问题
- 如何在代码中启用/禁用 spdlog 日志记录?
- 我正在尝试用 c++ 制作一个日志记录框架,但信息没有传递给记录器的子组件,我做错了什么?
- 使用 Python、ROS 和 C++ 进行日志记录
- C++日志记录类实例标识符
- 如何在C++中重载<<线程安全日志记录的运算符?
- 在 C++17 中将无限参数传递给日志记录函数
- 配置 log4cpp 日志记录级别优先级
- 如何使用 Boost V2 1.70 日志记录库在第一个索引(例如 logtrail01.txt)保留最新的日志文件名?
- 如何将日志记录写入Visual Studio输出窗口?
- 使用现有日志记录库 (C++) 限制日志大小
- "正在初始化":无法从"事件日志记录 *"转换为"事件日志记录 []"
- 提升日志记录text_file_backend没有wchar_t版本?
- 多线程应用程序中的独立日志记录
- C++类似cout的函数,将数据写入文件(日志记录)