当前位置: 首页 > news >正文

洛阳市政建设网站网站建设中 html免费

洛阳市政建设网站,网站建设中 html免费,网站php环境搭建,网站建设内容是经营项目吗在项目中,调试打印十分重要,这里分享一个自己写的简单但是实用的打印日志类,控制台打印时间戳具体内容保存文件 1.相关库介绍及其基本用法 a.<iostream> 功能&#xff1a;提供基本的输入输出流功能&#xff0c;如std::cout用于控制台输出&#xff0c;std::cin用于控制台输…

        在项目中,调试打印十分重要,这里分享一个自己写的简单但是实用的打印日志类,控制台打印时间戳+具体内容+保存文件

        1.相关库介绍及其基本用法

                a.<iostream>

               功能:提供基本的输入输出流功能,如std::cout用于控制台输出,std::cin用于控制台输入。

               基本用法示例      

#include <iostream>int main() {std::cout << "Hello, World!" << std::endl;return 0;
}

 

                b. <fstream>

                功能:用于文件的输入输出操作,包含std::ofstream(用于写入文件)和std::ifstream(用于读取文件)等类。

                基本用法示例

#include <fstream>
#include <iostream>int main() {std::ofstream outfile("example.txt");if (outfile.is_open()) {outfile << "This is a test." << std::endl;outfile.close();} else {std::cerr << "Unable to open file" << std::endl;}return 0;
}
                c. <string>

                功能:提供std::string类,用于处理字符串,支持字符串的拼接、查找、替换等操作。

                基本用法示例

#include <iostream>
#include <string>int main() {std::string str1 = "Hello";std::string str2 = " World";std::string result = str1 + str2;std::cout << result << std::endl;return 0;
}
                d. <iomanip>

                功能:提供输入输出流操作符,用于格式化输出,如std::put_time用于格式化时间输出。

                基本用法示例

#include <iostream>
#include <iomanip>
#include <ctime>int main() {std::time_t now = std::time(nullptr);std::cout << std::put_time(std::localtime(&now), "%Y-%m-%d %H:%M:%S") << std::endl;return 0;
}

 

                e. <chrono>

                功能:提供时间处理功能,用于获取当前时间、计算时间间隔等。

                基本用法示例

#include <iostream>
#include <chrono>
#include <ctime>int main() {auto now = std::chrono::system_clock::now();auto now_time = std::chrono::system_clock::to_time_t(now);std::cout << std::put_time(std::localtime(&now_time), "%Y-%m-%d %H:%M:%S") << std::endl;return 0;
}

                f.<sstream> 

                功能:提供了用于字符串流处理的类和函数。字符串流是一种非常有用的工具,它允许你像操作输入输出流(如 std::cin 和 std::cout)一样操作字符串。主要包含以下三个类:

      std::istringstream:用于从字符串中读取数据,类似于 std::cin 从标准输入读取数据,常被用于将字符串解析为不同类型的数据。

      std::ostringstream:用于向字符串中写入数据,类似于 std::cout 向标准输出写入数据,常被用于将不同类型的数据组合成一个字符串。

      std::stringstream:既可以用于读取数据,也可以用于写入数据,结合了 std::istringstream 和 std::ostringstream 的功能。

               基本用法示例

#include <iostream>
#include <sstream>
#include <string>int main() {std::string input = "123 Hello";std::istringstream iss(input);int number;std::string word;// 从字符串流中读取整数iss >> number;// 从字符串流中读取字符串iss >> word;std::cout << "Number: " << number << std::endl;std::cout << "Word: " << word << std::endl;return 0;
}
#include <iostream>
#include <sstream>
#include <string>int main() {int age = 25;std::string name = "Alice";std::ostringstream oss;// 向字符串流中写入数据oss << "Name: " << name << ", Age: " << age;// 获取组合后的字符串std::string output = oss.str();std::cout << output << std::endl;return 0;
}
#include <iostream>
#include <sstream>
#include <string>int main() {std::stringstream ss;// 向字符串流中写入数据ss << "456 World";int num;std::string str;// 从字符串流中读取数据ss >> num;ss >> str;std::cout << "Number: " << num << std::endl;std::cout << "String: " << str << std::endl;return 0;
}

2.日志demo运行结果

        demo是在Linux系统下进行运行

 

3.实现代码 

        实现代码包括详细注释,最后使用宏定义方便调用

//
// Created by Administrator on 2025/4/30.
//#ifndef LOGDEMO_LOGGER_H
#define LOGDEMO_LOGGER_H#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
#include <chrono>
#include <sstream>/*** @brief 日志记录类,提供不同级别的日志输出功能** 使用单例模式确保全局唯一日志实例* 支持不同级别的日志输出:INFO, WARNING, ERROR* 自动添加时间戳和日志级别前缀* 日志除了打印到控制台,还会保存到以当天日期命名的txt文件中*/
class Logger {
public:// 日志级别枚举enum class Level {INFO,WARNING,ERROR};// 获取单例实例static Logger& getInstance() {static Logger instance;return instance;}// 禁用拷贝和赋值,确保单例的正确性Logger(const Logger&) = delete;Logger& operator=(const Logger&) = delete;// 日志输出方法void log(Level level, const std::string& message) {auto now = std::chrono::system_clock::now();auto now_time = std::chrono::system_clock::to_time_t(now);// 使用 std::ostringstream 格式化时间戳std::ostringstream timestamp_stream;timestamp_stream << std::put_time(std::localtime(&now_time), "%Y-%m-%d %H:%M:%S");std::string timestamp = timestamp_stream.str();std::string logLevel;switch (level) {case Level::INFO: logLevel = "[INFO]"; break;case Level::WARNING: logLevel = "[WARNING]"; break;case Level::ERROR: logLevel = "[ERROR]"; break;}std::string logMessage = "[" + timestamp + "] " + logLevel + " " + message;// 打印到控制台std::cout << logMessage << std::endl;// 使用 std::ostringstream 格式化文件名std::ostringstream filename_stream;filename_stream << std::put_time(std::localtime(&now_time), "%Y-%m-%d") << ".txt";std::string filename = filename_stream.str();std::ofstream outfile(filename, std::ios::app);if (outfile.is_open()) {outfile << logMessage << std::endl;outfile.close();} else {std::cerr << "Unable to open file: " << filename << std::endl;}}private:Logger() = default; // 私有构造函数确保单例
};// 日志宏定义,方便使用
#define LOG_INFO(msg) Logger::getInstance().log(Logger::Level::INFO, msg)
#define LOG_WARNING(msg) Logger::getInstance().log(Logger::Level::WARNING, msg)
#define LOG_ERROR(msg) Logger::getInstance().log(Logger::Level::ERROR, msg)#endif //LOGDEMO_LOGGER_H

http://www.dtcms.com/a/573996.html

相关文章:

  • 自己创建网站怎么赚钱青海省住房建设厅网站首页
  • MiniEngine学习笔记 : DescriptorHeap
  • 智能合约与智能合约开发交互详解
  • 我想出租做房 请问哪个网站好些泰安最新通告今天
  • 下一代CDN安全体系:融合加速、抗攻击与业务智能
  • 光纤传输器与网络延长器2合1技术解析:
  • OpenHarmony开发实践-鸿蒙napi开发实践
  • Redis识别缓存与数据库数据的不一致性以及识别热Key教程
  • 网站运营培训机构网站建设是做什么的
  • 商丘网站建设专业现状网站首页布局
  • 28.DHCP
  • Linux基础指令-Linux学习笔记(1)
  • 可以推广网站市网站制作
  • STM32TIM定时器PWM1模式与PWM2模式配置
  • 阿勒泰建设局网站北京模板网站建设费用
  • 上传OSS直传
  • 网站正在建设中页面 英文翻译网络网站建设电话
  • 外企渣打内推
  • TGRS 即插即用 | 超越传统U-Net!ASCNet融合小波变换与全局注意力,重新定义图像修复范式
  • 一线城市网站建设费用高wordpress调用id数据
  • BOD5快速测定仪:环境水质监测的高效解决方案
  • 【仓颉纪元】仓颉性能优化深度实战:5 天让应用提速 300%
  • 全网营销型网站建设公司wordpress 个人soho
  • Python 正则表达式实战 + 详解:从匹配QQ邮箱到掌握核心语法
  • 五度易链产业大脑技术拆解:AI + 大数据 + 云计算如何构建产业链数字基础设施?
  • 湖南如何做网络营销seo哪家好
  • 松北建设局网站网件路由器为什么都是官翻
  • 【Unity】接入腾讯TimPush通知消息推送
  • 使用WinBoat在Linux中安装window应用
  • 文档抽取技术:通过自然语言处理自动提取简历中的结构化信息,实现高效人才筛选