最近寫了乙個日誌類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...