最近寫了個日誌類,挺好用 )

2021-04-07 14:28:10 字數 2188 閱讀 7288

最近寫了乙個日誌類clog,在實際系統中應用檢驗過了,效果不錯,貼出來和大家交流交流,看還有沒有需要改進的地方。

現對clog類做部分說明:

這個類用到mfc的cfilefind,如果不用mfc,cfilefind實現的查詢檔案夾功能可用pathfileexists實現,當然,cstring型別也需要轉換。我已對寫日誌函式加鎖,因此是執行緒安全的。

程式在當前目錄下生成日誌資料夾(如果該資料夾存在,則不生成),每天的日誌放在乙個以當天日期命名的資料夾中。

max_row       定義乙個日誌檔案的最大行數,乙個日誌檔案達到這個行數後即關閉,並建立乙個新檔案。

void disable();  關閉日誌功能

void enable();  開啟日誌功能

int newlogfile();  建立新日誌檔案

bool ischangeday();  判斷是否跨天(凌晨0點)

cstring getcurnttime();  獲得當前時間字串,格式為 2006-06-21-11-50

void writelogfile(const char* fmt, ... );  寫日誌函式

標頭檔案  logfile.h

#include

#include

#include

#include

#define max_row 5000

class clog

;實現**  logfile.cpp

#include "stdafx.h"

#include "logfile.h"

#include

static char  log_directory="ivr_log";

clog::clog()}}

m_slogdir = m_scurtdir + (cstring)"//" + (cstring)log_directory;

if (!bhaslogdir)

cstring strtime = getcurnttime ();

m_stoday = strtime.mid(0,10);

}clog::~clog()

int clog::newlogfile()

strlogfilename = m_slogdaydir + (cstring)"//" + m_scurttime + (cstring)".txt";

if((m_filehandle=_open(strlogfilename,_o_wronly| _o_creat|o_trunc, _s_iread | _s_iwrite)) == -1)

m_filenum++;

return 0;

}bool clog::ischangeday()

return false;

}void clog::writelogfile(const char* fmt, ... )

m_row = 0;

}va_list v_args;

va_start(v_args,fmt);

vsprintf( m_scontent, fmt, v_args );

va_end( v_args );

cstring strtime;

ctime ctime = ctime::getcurrenttime();

strtime = _t("20") + ctime.format("%y-%m-%d %h:%m:%s");

/*char stime[32];

time_t now = time(null);

tm *tm_time = localtime(&now);    //注意,localtime非執行緒安全

strftime(stime,sizeof(stime),"20%y-%m-%d %h:%m:%s",tm_time);

*/m_strcontent = (cstring)"[" + strtime + (cstring)"]" + (cstring)m_scontent + "/n";

_write(m_filehandle,m_strcontent,m_strcontent.getlength());

m_row++;

m_cs.unlock();}}

cstring clog::getcurnttime()

void clog::enable()

void clog::disable()

寫了個NSObject的擴充套件類

乙個object的分類,可以在呼叫performselector 函式的時候不限制傳參的數量 bool需要封裝一層 為了讓performselector 後面帶入的引數可識別,很有必要將bool封裝一層,用於在後面解析函式時候的識別 inte ce boolclass nsobject proper...

寫了個加密解密Url的類

usingsystem usingsystem.security.cryptography usingsystem.io usingsystem.text namespacenetbesttone.baseclass string querystringkey abcdefgh url傳輸引數加密k...

用c ,寫了個單鏈錶類

這幾天開始學習資料結構,今天便寫了個最簡單的單鏈表,在標頭檔案裡定義的 並且實現了自定義位置插入資料,刪除資料,查詢資料,預設新增資料功能 不知道這算不算adt呢,對於概念還不是很懂 笑 只有一點點的c基礎,寫物件導向還不是很熟悉,希望 不會很難看xd include include using s...