C++中是否有任何日誌記錄功能,可以通過設置debug = True或類似的方式將調試消息打印到標準輸出來啓用?C++中的logger.debug功能
回答
慣用的伎倆是這樣的:
void writeLog(const char* message); // Define elsewhere to do your logging
#ifdef DEBUG
#define Log(x) writeLog(x)
#else
#define Log(x)
#endif
// Somewhere in your main code
Log("This message is only seen if DEBUG is defined at compilation");
所以根據debug的值將日誌定義爲不同的東西吧?對不起,我對這種類型的函數定義有點新鮮。 – Cemre 2012-02-14 14:46:08
沒錯。 '#'指令是預處理器的一部分;實質上,在編譯代碼之前,預處理器將在物理上重寫它。如果已經定義了DEBUG(通常作爲項目設置或切換到命令行編譯器),那麼'Log'被替換爲'writeLog';如果沒有定義,「Log」被替換爲空,所以它什麼也不做。 – Chowlett 2012-02-14 14:55:56
只是非常尷尬,標準定義了一個符號'NDEBUG',它影響'assert'宏。所以,如果你希望你的日誌和你的斷言在同一個開關上,你可以使用它,否則你可以添加一些代碼來定義'DEBUG',如果'NDEBUG'是錯誤的,反之亦然。 – 2012-02-14 15:08:47
沒有。但是你可以有選擇地定義你自己的方法。
#ifdef DEBUG
#define DEBUG_MSG(msg) debug(msg)
#else
#define DEBUG_MSG(msg)
#endif
- 1. HttpUtil,logger.debug
- 2. C++的功能
- 3. C中的統計功能#
- 4. C中的主要功能
- 5. c中的犰狳功能#
- 6. C#中的jQuery功能#
- 7. 功能功率C++
- 8. logger.debug vs放入Rails調試?
- 9. 功能的C/C++定義
- 10. 推按功能C中的堆棧中的分段錯誤功能C語言
- 11. 功能在C
- 12. c到功能
- 13. C++在功能
- 14. 功能C++
- 15. 功能在C
- 16. 功能在C++
- 17. C++ find_if功能:
- 18. c + +從功能
- 19. C#isPowerOf功能
- 20. 功能在C
- 21. C:從功能
- 22. 會員在C++中的功能爲Friend功能
- 23. logger.debug [ 「這」, 「一個」, 「陣列」] Rails的
- 24. F#功能VS C# 「功能」 蒸發散
- 25. 在C#中定義extern「C」功能
- 26. 類似的功能在C#中的String.Format
- 27. C#中VB6的ObjPtr的等價(功能)?
- 28. 我的C在Bison中的功能?
- 29. C/C++:用作功能
- 30. C++模板功能
那麼有[this](http://www.cplusplus.com/reference/iostream/clog/),但它會去'stderr'。 – 2012-02-14 14:39:55