• 大小: 35KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: C/C++
  • 标签: 日志库  

资源简介

C++自己实现日志库,包括XML文件解析,日志信息分级,多种方式存储

资源截图

代码片段和文件信息

#include 
#include “logout.h“

LogOut::LogOut()
{
    m_path.clear();

    m_logxml = new Logxml;
}

void LogOut::logOut(string line string msg LogLevel level)
{
    if(“true“ == m_logxml->getTextSwitch())
    {
        writeLog(linemsglevel);
    }
    if(“true“ == m_logxml->getConSwitch())
    {
        printLog(linemsglevel);
    }
    if(“true“ == m_logxml->getDBSwitch())
    {
        saveLog(linemsglevel);
    }
}

string LogOut::getCurrentTime()
{
    struct tm *local; //定义tm结构指针存储时间信息
    time_t now;  //声明time_t类型变量
    timeb tb;
    ftime(&tb); //微秒
    now=time(NULL);//获取当前系统的日历时间
    local=localtime(&now);//localtime()函数是将日历时间转化为本地时间
    char temp[50] = {0};
    sprintf(temp“[%d-%d-%d %d:%d:%d:%3d]“local->tm_year + 1900local->tm_mon + 1local->tm_mday
            local->tm_hourlocal->tm_minlocal->tm_sectb.millitm);
    string timeNow = temp;
    return timeNow;
}

void LogOut::printLog(string line string msg LogLevel level)
{
    switch(level)
    {
    case DEBUG:
        cout<DEBUG“<        break;
    case INFO:
        cout<INFO“<        break;
    case WARN:
        cout<WARN“<        break;
    case ERRO:
        cout<ERRO“<        break;
    case FATAL:
        cout<FATAL“<        break;
    default:
        break;
    }
}

void LogOut::writeLog(string line string msg LogLevel level)
{
    string fileName = m_logxml->getPath();
    ofstream outfile(fileName.c_str()ios::app);//将fileName转化为c型字符串作为文件名
    if(!outfile)
    {
        cout<<“Log.txt can‘t open.“<        return;
    }
    else
    {
        switch(level)
        {
        case DEBUG:
            if(m_logxml->getLevel()>=“5“)
            {
                outfile<DEBUG“<            }
            break;
        case INFO:
            if(m_logxml->getLevel()>=“4“)
            {
                outfile<INFO“<            }
            break;
        case WARN:
            if(m_logxml->getLevel()>=“3“)
            {
                outfile<WARN“<            }
            break;
        case ERRO:
            if(m_logxml->getLevel()>=“2“)
            {
                outfile<ERRO“<            }
            break;
        case FATAL:
            if(m_logxml->getLevel()>=“1“)
            {
              

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-05-11 13:54  LogLib\
     文件         220  2018-03-21 16:30  LogLib\LogLib.pro
     文件         193  2018-03-23 15:54  LogLib\config.xml
     文件        3479  2018-05-11 13:53  LogLib\logout.cpp
     文件        1367  2018-03-23 17:56  LogLib\logout.h
     文件        1071  2018-05-11 13:53  LogLib\logxml.cpp
     文件         780  2018-03-23 15:48  LogLib\logxml.h
     文件         235  2018-03-22 08:44  LogLib\main.cpp
     文件       72979  2018-02-25 09:38  LogLib\tinyxml2.cpp
     文件       70123  2018-02-25 09:38  LogLib\tinyxml2.h

评论

共有 条评论

相关资源