C 實現乙個日誌類

2022-05-04 18:12:11 字數 2180 閱讀 1013

**:

我們可能遇到發包後,在客戶機器上出現各種未知錯誤,如果沒有日誌列印,對於問題解決是很困難的,因此常規的解決辦法就是列印日誌。

在此用c++ 實現乙個簡單的日誌類,使用cout輸出除錯資訊,同時把日誌寫到檔案中,實現了乙個logger類,主要考慮實現以下功能:

為了方便的設定日誌等級,可以用乙個列舉類表示四種日誌等級,同理用乙個列舉類表示三種輸出目標

enum log_level;//

日誌等級

enum log_target;//

日誌輸出目標

logger.h

#ifndef _logger_h_

#define _logger_h_#include

#include

#include

#pragma warning (disable:4996)

class

logger

;//日誌等級

enum log_target ;//

日誌輸出目標

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_

logger.cpp

#include "

logger.h

"#include

std::

string

currtime()

logger::logger()

logger::logger(log_target target, log_level level,

const std::string&path)

if (target !=file)

}logger::~logger()

m_outfile.flush();

m_outfile.close();

}void logger::debug(const std::string&text)

void logger::info(const std::string&text)

void logger::warning(const std::string&text)

void logger::errors(const std::string&text)

void logger::output(const std::string &text, log_level act_level)

if (m_target !=terminal)

m_outfile

<

m_outfile.flush();

//重新整理緩衝區

}

測試

C 實現乙個日誌類

c 沒有貌似自帶的日誌類,如果僅僅使用cout輸出除錯資訊的話比較凌亂,所以我嘗試自己實現了乙個logger類,主要考慮實現以下功能 為了方便的設定日誌等級,可以用乙個列舉類表示四種日誌等級,同理用乙個列舉類表示三種輸出目標 enum log level 日誌等級 enum log target 日...

C 實現乙個日期類

include using namespace std class date public bool is invalid date 判斷日期是否無效 return false public int day in month if is leap year return days month pub...

C 實現乙個Date類

關於日期類,我們最基本的成員變數就是三個 年 月 日。關於成員函式我們要實現構造,拷貝構造,賦值,關於日期的比較大小,以及日期加天數,日期減天數,以及 和 同時還要考慮能否復用,日期減日期,還有日期類的 和 分為前置和後置 等。具體 如下 詳情請看 注釋 date.h pragma once inc...