【无标题】

手撸日志库

先附上代码:

// 手撸日志.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include<fstream>
#include<ctime>
#include <chrono>
using namespace std;
class Interface
{
    
    virtual void lo() = 0;//
};

class Implementation:public Interface
{
public:
    enum  leix//和enum class leix有什么区别 
    {
        DEBUG,
        INFO,
        WARNING,
        ERROR
    };

   static void log(leix a,string message)
    {
        string k;
        if (a == DEBUG)
            k = "DEBUG";
        else if (a == INFO)
            k = "INFO";
        else if (a == WARNING)
            k = "WARNING";
        else if(a==ERROR)
            k="ERROR";
        else
        {
            cout << "!!!error";
            return;
        }
        
        // 获取当前系统时间
        auto now = std::chrono::system_clock::now();
        // 转换为时间戳
        time_t time = std::chrono::system_clock::to_time_t(now);//chrono是一个作用域,system_clock是一个结构体。

        // 将时间戳转换为本地时间结构体
        tm local_time{};
#ifdef _WIN32
        localtime_s(&local_time, &time);
#else
        localtime_r(&time, &local_time);
#endif

        // 输出当前年份、月份、日期、小时和分钟

        std::ofstream outputFile("output.txt",ofstream::app);//app的意思是不覆盖

     
            outputFile <<"[" << (local_time.tm_year + 1900) << "-" << (local_time.tm_mon + 1) << "-"
                << local_time.tm_mday << " " << local_time.tm_hour << ":" << local_time.tm_min <<"]" << " ";
            outputFile << "["<<k<<"]" << " " << message << endl;
        
    }
};
int main()
{
    
    Implementation::log(Implementation::DEBUG,"this is debug");
    Implementation::log(Implementation::INFO,"this is info");
    Implementation::log(Implementation::WARNING,"this is warning");
    Implementation::log(Implementation::ERROR,"this is error");
    
}


日志库功能为能在本地简单记录编译的一些情况,说白了就是编译的情况通过文件读写的方式记录在本地文件下。

不了解部分欢迎评论,博客会慢慢更新......

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值