栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ 实现一个日志类

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ 实现一个日志类


enum log_level{debug, info, warning, error};// 日志等级
enum log_target{file, terminal, file_and_terminal};// 日志输出目标

//log.h/
#ifndef _LOGGER_H_
#define _LOGGER_H_

#include 
#include 
#include 

#pragma warning (disable:4996)

class Logger
{
public:
    enum log_level { debug, info, warning, error };// 日志等级
    enum log_target { file, terminal, file_and_terminal };// 日志输出目标
public:
    Logger();
    Logger(log_target target, log_level level, const std::string& path);
    ~Logger();
    
    void DEBUG(const std::string& text);
    void INFO(const std::string& text);
    void WARNING(const std::string& text);
    void ERRORS(const std::string& text);

private:
    std::ofstream m_outfile;    // 将日志输出到文件的流对象
    log_target m_target;        // 日志输出目标
    std::string m_path;              // 日志文件路径
    log_level m_level;          // 日志等级
    void output(const std::string &text, log_level act_level);            // 输出行为
};

#endif//_LOGGER_H_

//log.cpp/

#ifndef _LOGGER_H_
#define _LOGGER_H_

#include 
#include 
#include 

#pragma warning (disable:4996)

class Logger
{
public:
    enum log_level { debug, info, warning, error };// 日志等级
    enum log_target { file, terminal, file_and_terminal };// 日志输出目标
public:
    Logger();
    Logger(log_target target, log_level level, const std::string& path);
    ~Logger();
    
    void DEBUG(const std::string& text);
    void INFO(const std::string& text);
    void WARNING(const std::string& text);
    void ERRORS(const std::string& text);

private:
    std::ofstream m_outfile;    // 将日志输出到文件的流对象
    log_target m_target;        // 日志输出目标
    std::string m_path;              // 日志文件路径
    log_level m_level;          // 日志等级
    void output(const std::string &text, log_level act_level);            // 输出行为
};

#endif//_LOGGER_H_



//test.cpp

#include "Logger.h"

void test() {
    Logger logger(Logger::file_and_terminal, Logger::debug, "Log.log");
    logger.DEBUG("Debug info");
    logger.INFO("This is variable");
    logger.WARNING("This function or variable may be unsafe");
    logger.ERRORS("Memory leak");
}

int main()
{
    test();
    getchar();
    return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/316258.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号