Code-Logger-替换标准输出和标准错误,并通过宏使能输出
Code-Logger-替换标准输出和标准错误,并通过宏使能输出
需求:替换标准输出和标准错误,并通过宏使能输出
class Logger
#ifndef ENABLE_LOGS #define ENABLE_LOGS 1 // 设置为1表示启用日志输出,0则禁用 #endif #include <iostream> #include <sstream> class Logger { public: template<typename T> Logger& operator<<(const T& value) { if (ENABLE_LOGS) { stream_ << value; } return *this; } // 当需要输出时,调用此函数 void printCOUT() { if (ENABLE_LOGS) { std::cout << stream_.str() << std::endl; stream_.str(""); // 清空stringstream } } void printCERR() { if (ENABLE_LOGS) { std::cerr << stream_.str() << std::endl; stream_.str(""); // 清空stringstream } } private: std::stringstream stream_; };
- Demo
#include "logger.h" // 假设上面的Logger定义在这个文件中 void exampleUsage() { Logger() << "这是一个例子: " << 123 << " 和 " << 45.67 << std::endl; // 或者使用print方法 Logger log; log << "另一个例子: " << true << " 在行尾不需要手动换行"; log.printCOUT(); }
本文来自博客园,作者:Theseus‘Ship,转载请注明原文链接:https://www.cnblogs.com/yongchao/p/18298178
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!