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();
}
posted @   Theseus‘Ship  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
Live2D
欢迎阅读『Code-Logger-替换标准输出和标准错误,并通过宏使能输出』
点击右上角即可分享
微信分享提示