專案中需要分類日誌功能,且日誌由多個程序產生,所以寫了這個類。
#include"generic.h"
enumlog_type
;public:
static
char*lpszfmt,...);
static
char*lpszfmt,...);
static
char*lpszfmt,...);
static
char*lpszfmt,...);
private:
staticsem_t*s_plogfilesem;
static
char*lpsztext);
};以下是它的實現/**
*createdon:jan1,2009
*author:root
*/#include"csystemhelper.h"
#definelog_sem_name"logfilesem"
if(s_plogfilesem==null)
}if(s_plogfilesem!=null)
}char*lpsztext)
; intnret=readlink("/proc/self/exe",szbuffer,sizeof(szbuffer));
if(nret<=0||nret>=path_max)
return;
stringstrtemp(szbuffer);
stringstrdir=strtemp.substr(0,strtemp.rfind('/')+1);
stringstrexe=strtemp.substr(strtemp.rfind('/')+1);
time_tulnow=;
time(&ulnow);
tm*pnow=localtime(&ulnow);
memset(szbuffer,0,sizeof(szbuffer));
sprintf(szbuffer,"%slog/%04d/%04d-%02d/"
,strdir.c_str()
,1900+pnow->tm_year
,1900+pnow->tm_year
,1+pnow->tm_mon
);csystemhelper::createdirectory(szbuffer);
sprintf(szbuffer,"%slog/%04d/%04d-%02d/%04d-%02d-%02d.log"
,strdir.c_str()
,1900+pnow->tm_year
,1900+pnow->tm_year
,1+pnow->tm_mon
,1900+pnow->tm_year
,1+pnow->tm_mon
,pnow->tm_mday
);sem_wait(s_plogfilesem);
; sprintf(szformated,"\r\n%02d[%02d:%02d:%02dpid=%05dtid=%05ldexe=%-15s]%s"
,emtype
,pnow->tm_hour
,pnow->tm_min
,pnow->tm_sec
,getpid()
,(long)syscall(sys_gettid)
,strexe.c_str()
,lpsztext
);streamstream.close();}}
sem_post(s_plogfilesem);
}char*lpszfmt,...)
; vsprintf(szbuffer,lpszfmt,arg);
va_end(arg);
}char*lpszfmt,...)
; vsprintf(szbuffer,lpszfmt,arg);
va_end(arg);
}char*lpszfmt,...)
; vsprintf(szbuffer,lpszfmt,arg);
va_end(arg);
}char*lpszfmt,...)
; vsprintf(szbuffer,lpszfmt,arg);
va_end(arg);
}使用起來很簡單,將類加入到工程,然後在需要的地方包含此類的標頭檔案,然後直接呼叫靜態方法。這裡用到了乙個輔助類的函式 csystemhelper::createdirectory,它的實現如下:
voidcsystemhelper::createdirectory(const
char*lpszdir)
}
乙個簡單的日誌類
放乙個以前做的,一直用著的日誌類。比較短,也不用碼很多字去說明,如下 1 2 日誌類 log.cs34 5 用法 6 ningtao.log mylog new ningtao.log 日誌名稱 7 mylog.addlog 日誌資訊 8 新增一條日誌時 9 目錄結構 日誌名稱 年月 日.log 1...
乙個操作日誌檔案的類
在軟體中常用到日誌檔案,這是我在專案中用到的乙個操作日誌檔案的類。imports system imports system.io public class classlogfile inherits system.object public shared logfilename as string...
乙個簡單的日誌封裝類
記錄乙個自己封裝的日誌類,不完善的地方,望指點。其中,包含寫檔案和輸出到終點,定義日誌等級,定義日誌儲存檔案時間間隔,日誌檔案個數等 並統一日誌輸出格式 檔名,方法名等資訊 import logging from logging import handlers class logger object...