**:
我們可能遇到發包後,在客戶機器上出現各種未知錯誤,如果沒有日誌列印,對於問題解決是很困難的,因此常規的解決辦法就是列印日誌。
在此用c++ 實現乙個簡單的日誌類,使用cout輸出除錯資訊,同時把日誌寫到檔案中,實現了乙個logger類,主要考慮實現以下功能:
為了方便的設定日誌等級,可以用乙個列舉類表示四種日誌等級,同理用乙個列舉類表示三種輸出目標
enum log_level;//logger.h日誌等級
enum log_target;//
日誌輸出目標
#ifndef _logger_h_logger.cpp#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_
#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...