C++ – 只有在Debug模式下才使用std::cout输出调试日志,Release发布版本不输出调试日志
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – 只有在Debug模式下才使用std::cout输出调试日志,Release发布版本不输出调试日志
原文链接:https://www.stubbornhuang.com/1106/
发布于:2021年01月16日 10:32:07
修改于:2021年01月16日 10:32:07

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不是线程安全的,只可以在单线程的情况下使用,如果有时间会说一下多线程情况下的线程安全的日志输出类。
当前分类随机文章推荐
- C++11 - std::string - stod/stof/stoi/stol/stold/stoll/stoul/stoull,由std::string转换为int/long/float/double等其他类型 阅读1537次,点赞0次
- C++ - 字节数组byte[]或者unsigned char[]与int的相互转换 阅读3224次,点赞1次
- C++ - 使用正则判断字符串是否全是中文 阅读398次,点赞0次
- C++ - C++类的特殊成员函数,析构函数,拷贝构造函数,移动构造函数,赋值运算符,移动赋值运算符介绍和基础语法 阅读137次,点赞0次
- C++ - 在Windows/Linux上创建单级目录以及多级目录的跨平台方法 阅读51次,点赞0次
- C++ - 使用Websocket++编写客户端连接WebSocket服务器并进行通信 阅读2106次,点赞2次
- C++ - GBK编码下的全角字符转半角字符 阅读590次,点赞0次
- C++11 - 构建一个符合实际应用要求的线程池 阅读496次,点赞0次
- C++ Map中存储动态指针时正确释放内存 阅读2564次,点赞0次
- 计算几何 - C++计算两个二维向量的夹角 阅读1562次,点赞3次
全站随机文章推荐
- 资源分享 – OpenGL Programming Guide (Ninth Edition) OpenGL红宝书英文第9版 英文高清PDF下载 阅读1169次,点赞1次
- 资源分享 - Color Imaging - Fundamentals and Applications 英文高清PDF下载 阅读503次,点赞0次
- 资源分享 - OpenGL 4.0 Shading Language Cookbook (Third Edition) 英文高清PDF下载 阅读1717次,点赞0次
- 姿态估计 - COCO-WholeBody数据集骨骼关节keypoint标注对应 阅读1204次,点赞0次
- C++ - 使用Crypto++/CryptoPP加解密库对字符串或者文件进行AES256加密 阅读645次,点赞1次
- C++ - 最简单的将文本文件的内容一次性读取到std::string的方法 阅读2468次,点赞2次
- 资源分享 - 3D Engine Design for Virtual Globes 英文高清PDF下载 阅读874次,点赞0次
- 资源分享 - Real-Time Shadows英文高清PDF下载 阅读2813次,点赞0次
- C++ - 使用Websocket++编写客户端连接WebSocket服务器并进行通信 阅读2106次,点赞2次
- Duilib - 颜色属性的设置 阅读2036次,点赞1次
评论
144