C++实现一个简单的日志类

#include <fstream>
#include <string>
#include <sstream>
#include <ctime>
#include <iostream>

using namespace std;

class Logger {
private:
    std::ofstream fileStream; // 日志文件流
public:
    Logger(const std::string& filename) : fileStream(filename, std::ios::app) { // 构造函数,打开日志文件
    }
    void log(const std::string& message) { // 记录日志
        std::time_t currentTime = std::time(nullptr); // 获取当前时间
        char timestamp[20];
        std::strftime(timestamp, sizeof(timestamp), "[%Y-%m-%d %H:%M:%S]", std::localtime(&currentTime)); // 格式化时间戳
        fileStream << timestamp << " " << message << std::endl; // 写入日志文件
    }
    ~Logger() { // 析构函数,关闭日志文件
        if (fileStream.is_open()) {
            fileStream.close();
        }
    }
};

int main(){
  Logger logger = ("example.log");
  logger.log("test log message");
  
  return 0;
}
posted @ 2023-04-18 17:02  Kurie  阅读(97)  评论(0编辑  收藏  举报