C++自定义log日记,简单方便使用

本文分享了一段经过调试的C++代码,实现了一个简单易用的Logger头文件,可用于快速集成到项目中进行日志记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接上代码,经过本人调式过,可以直接拿去使用代码

Logger.h

//
// Created by ts on 18-2-7.
//

#ifndef __LOGGER__
#define __LOGGER__

#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <cstdlib>
#include <stdint.h>

///
/// \brief 日志文件的类型
///
typedef enum log_rank {
    INFO,
    WARNING,
    ERROR,
    FATAL
}log_rank_t;

///
/// \brief 初始化日志文件
/// \param info_log_filename 信息文件的名字
/// \param warn_log_filename 警告文件的名字
/// \param error_log_filename 错误文件的名字
void initLogger(const std::string&info_log_filename,
                const std::string&warn_log_filename,
                const std::string&error_log_filename);

///
/// \brief 日志系统类
///
class Logger {
    friend void initLogger(const std::string& info_log_filename,
                           const std::string& warn_log_filename,
                           const std::string& erro_log_filename);

public:
    //构造函数
    Logger(log_rank_t log_rank) : m_log_rank(log_rank) {};

    ~Logger();
    ///
    /// \brief 写入日志信息之前先写入的源代码文件名, 行号, 函数名
    /// \param log_rank 日志的等级
    /// \param line 日志发生的行号
    /// \param function 日志发生的函数
    static std::ostream& start(log_rank_t log_rank,
                               const int line,
                               const std::string& function);

private:
    ///
    /// \brief 根据等级获取相应的日志输出流
    ///
    static std::ostream& getStream(log_rank_t log_rank);

    static std::ofstream m_info_log_file;                   ///< 信息日子的输出流
    static 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值