C++ – 只有在Debug模式下才使用std::cout输出调试日志,Release发布版本不输出调试日志
1 调试日志的输出
- 日志的输出的重要性:在程序开发过程中,日常调试信息的输出对锁定bug代码行位置、数据校验、信息判断起着非常重要的作用。
-
日志输出的缺陷:但是在发布的生产版本代码中大量输出日志容易造成性能丢失,日志文件过大的问题,所以调试日志输出常常只是需要在Debug模式下需要,而在发布版本中是不需要的。
2 使用于不同的开发模式下的日志输出
我们可以通过代码控制调试日志只在Debug模式下输出而在Release模式下不输出。
在全局头文件中加入以下代码:
#include <iostream>
#ifdef DEBUG
#define debugcout std::cout
#else
#define debugcout 0 && std::cout
#endif // DEBUG
即可使得只在Debug模式下输出日志。
只需要在使用时调用:
debugcout << "HelloWorld" << std::endl;
即可。
当然上述方式是线程不安全的,因为std::cout不是线程安全的,只可以在单线程的情况下使用,如果有时间会说一下多线程情况下的线程安全的日志输出类。
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – 只有在Debug模式下才使用std::cout输出调试日志,Release发布版本不输出调试日志
原文链接:https://www.stubbornhuang.com/1106/
发布于:2021年01月16日 10:32:07
修改于:2023年06月26日 21:59:07
当前分类随机文章推荐
- C++ - 字节数组byte[]或者unsigned char[]与int的相互转换 阅读8524次,点赞2次
- C++11/std::thread - 线程的基本用法 阅读3661次,点赞0次
- C++ - 数组初始化 阅读575次,点赞0次
- GCC - -fpic、-fPIC、-fpie、-fPIE编译选项的作用和区别 阅读266次,点赞0次
- C++ - 在CTC解码算法后移除相邻重复和blank索引 阅读598次,点赞0次
- C++ - std::map正向遍历与反向遍历的几种方式 阅读5211次,点赞3次
- C++ - std::map - 存储动态指针时正确释放内存 阅读4645次,点赞1次
- C++ - std::string输出双引号到字符串 阅读3965次,点赞0次
- C++STL容器 - std::vector构造方式与分配值方式总结 阅读1052次,点赞0次
- C++ - 使用Websocket++编写客户端连接WebSocket服务器并进行通信 阅读5162次,点赞3次
全站随机文章推荐
- C++ - return this和return *this的含义和区别 阅读666次,点赞0次
- Visual Studio - 借助远程Linux服务器环境在Visual Studio中编写和远程调试Linux C++程序 阅读1541次,点赞0次
- C++ - 跨平台在Windows、Linux系统上获取当前可执行程序路径 阅读70次,点赞0次
- 我的开源项目 - 支持C++11特性的定时器TinyTimer 阅读4670次,点赞0次
- 资源分享 - Artificial Intelligence - A Modern Approach , Fourth Edition 英文高清PDF下载 阅读6008次,点赞0次
- 资源分享 - Handbook of Discrete and Computational Geometry, Second Edition 英文高清PDF下载 阅读2372次,点赞0次
- 资源分享 - Game Programming Gems 3 英文高清PDF下载 阅读2426次,点赞0次
- Pytorch - transpose和permute函数的区别和用法 阅读1798次,点赞0次
- WordPress - 获取网站名称和首页网站链接 阅读114次,点赞0次
- 资源分享 - Nonlinear Computational Geometry 英文高清PDF下载 阅读1809次,点赞0次
评论
169