c++输出日志文件
代码如下
#include <iostream>
#include <fstream>
#include <string>
#include <chrono>
#include <thread>
int main() 
{
    // 定义文件路径,需要注意文件夹/home/wljss/my_log需要存在否则会报错
    std::string filePath = "/home/wljss/my_log/datalog";
	std::cout<<filePath<<std::endl;
    // 创建并打开文件,以追加模式(std::ios_base::app)打开文件;后面可以用outFile.open()来打开别的文件
    std::ofstream outFile(filePath, std::ios_base::app);
    // 检查文件是否成功打开
    if (!outFile.is_open()) {
        std::cout << "无法打开文件: " << filePath << std::endl;
        return 1;
    }
    // 模拟不断追加写入数据
    for(int i=1;i<=5;++i)
	{
        // 获取当前时间戳
        auto now = std::chrono::system_clock::now();
        auto in_time_t = std::chrono::system_clock::to_time_t(now);
        std::cout << "当前时间: " << std::ctime(&in_time_t);
        // 生成一些示例日志数据
        std::string logData = "日志数据: " + std::to_string(rand() % 1000) + "\n";
        // 写入数据到文件
        outFile << logData;
        // 刷新输出缓冲区,确保数据写入文件
        outFile.flush();
        // 等待一段时间(例如1秒),然后再次写入
        std::this_thread::sleep_for(std::chrono::seconds(1));
    }
    // 关闭文件
    outFile.close();
    return 0;
}
上面需要注意,如果没有文件夹/home/wljss/my_log会报错,可以用下面的方法创建文件夹
//linux系统
#include <unistd.h>
std::string folderPath="/home/wljss/my_log";
if (access(folderPath.c_str(), 0) == -1) 
{
  system(("mkdir -p "+folderPath).c_str());
}

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号