所以我在询问有关该主题的一般建议。我正在开发一个用于数值计算的C++库,但是通过开发,我发现它在调试时很有用,因为有一个标志可以启用某种形式的日志记录,以便我可以检查发生了什么问题。我的问题是什么是可接受的标准呢?我应该为DEBUG定义一些宏,以便如果它没有定义没有DEBUG发生?我应该使用日志库和日志?我应该在C++库中使用日志记录
回答
正如上面的评论所提到的,你的问题没有一般的答案 - 这取决于情况以及个人意见。我个人主要使用
#ifdef DEBUG
// logging here
#endif
块在我的代码(结合矿山其中打印附加信息的一些专门DEBUG_PRINT
宏,例如变量的名称和类型等)。然后,我只需将-DDEBUG
标志传递给编译器以全局启用所有DEBUG日志记录。 (我通常使用cmake,所以我在所有的调试版本中默认都会传递这个标志)我不知道这是否被认为是一种“可接受”的做法 - 它对我来说工作得很好。
谢谢,我正在寻找这种建议。你使用任何其他调试库,或者你只是使用一些简单的定义调试宏。我很感兴趣,如果有这样做的简单方法,以便我可以控制打印哪些类DEBUG语句,因为有很多事情正在进行,显示所有DEBUG消息可能不是太好 –
它取决于项目。我主要使用这两个宏:'#define DEBUG_PRINT(A)std :: cout << #A <<“:”<<(A)<< std :: endl;'和'#define PRINT_TYPE_INFO(A)std: :cout << #A <<“:”<< boost :: typeindex :: type_id_with_cvr
- 1. 我应该使用日志记录模块还是日志记录类?
- 2. 我应该使用JMS进行Web日志记录吗?
- 3. 我应该使用哪个NoSQL数据库进行日志记录?
- 4. 数据库日志记录在日志记录过程
- 5. 我可以在Rails应用程序中使用多个日志记录库吗?
- 6. 我该如何使用类似loglevel的库在我的react/redux web应用程序中执行日志记录
- 7. JavaScript日志记录库(日志级别)
- 8. 没有日志库的日志记录
- 9. 我应该为我的事务日志记录选择哪个数据库
- 10. 在MVC框架中应该在哪里记录日志?
- 11. 应该在生产中使用什么样的日志监听器? (ASP.NET /日志记录应用程序块)
- 12. 单元测试应该使用日志记录吗?
- 13. 如何让C库使用调用者的日志记录?
- 14. 数据库日志记录
- 15. 企业库日志记录
- 16. 使用Python日志记录管理日志记录器
- 17. 我应该如何处理Objective-C库中的日志?
- 18. Rails日志记录到Apache日志而不是应用日志
- 19. 使用AWS进行应用程序日志记录数据库
- 20. 我们应该单元测试日志记录吗?
- 21. 如何在我的ASP.net应用程序中启用数据库日志记录
- 22. 不使用python日志记录库记录所有错误
- 23. 相应的日志记录
- 24. 使用企业库日志记录块向事件日志中添加'用户'
- 25. Java日志记录:它是日志还是日志记录器?
- 26. Android:使应用程序只记录我的日志语句“
- 27. Log4Net/C# - 禁用默认日志记录
- 28. C++中的懒惰日志记录
- 29. 制作为在Objective-C日志记录
- 30. 错误日志记录在Windows CE C#
_“这是什么可接受的标准”_ - 这没有标准。 –
好的,让我解释一下 - 什么是被认为是好的设计选择,或者好,如果不是任何建议,你会根据经验给予。我从来没有做过这样的发展,我真的在寻找一些建议。 –
主要基于观点:“许多优秀的问题都基于专家经验产生了某种程度的意见,但对这个问题的回答往往基于意见而非事实,参考或具体专业知识。” –