首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

哪位高手有VC下的记录程序中信息的日志的例子,给小弟我看下.

2012-03-05 
谁有VC下的记录程序中信息的日志的例子,给我看下......日志信息存储在 数据库,EMail ,Xml,TXT中都可以最终

谁有VC下的记录程序中信息的日志的例子,给我看下......
日志信息存储在 数据库,EMail ,Xml,TXT中都可以 最终能设计成一个dll,lib模块的更好

[解决办法]

C/C++ code
//Log{#define MAXLOGSIZE 10000000#define ARRSIZE(x)  (sizeof(x)/sizeof(x[0]))#include <io.h>#include <time.h>#include <stdarg.h>char logfilename1[]="MyLog1.log";char logfilename2[]="MyLog2.log";char logstr[16000];char datestr[40];char timestr[40];CRITICAL_SECTION logsec;FILE *logf;void LogV(LPCTSTR pszFmt, va_list argp){    if (pszFmt==NULL||pszFmt[0]==0) return;    if (_vsnprintf(logstr, ARRSIZE(logstr), pszFmt, argp) == -1)        logstr[ARRSIZE(logstr) - 1] = 0;    printf("%s",logstr);    logf=fopen(logfilename1,"a");    if (logf!=NULL) {        if (_filelength(_fileno(logf))>MAXLOGSIZE) {            fclose(logf);            if (rename(logfilename1,logfilename2)) {                remove(logfilename2);                rename(logfilename1,logfilename2);            }            logf=fopen(logfilename1,"a");            if (logf==NULL) return;        }        _strdate(datestr);//01/25/06        datestr[2]=0;datestr[5]=0;sprintf(datestr+10,"%s%s%s",datestr+6,datestr+0,datestr+3);//060125        _strtime(timestr);//15:13:55        timestr[2]=0;timestr[5]=0;sprintf(timestr,"%s%s%s",timestr+0,timestr+3,timestr+6);//151355        fprintf(logf,"%s %s %s",datestr+10,timestr,logstr);        fclose(logf);    }}void Log(LPCTSTR pszFmt, ...){    va_list argp;    EnterCriticalSection(&logsec);    va_start(argp, pszFmt);    LogV(pszFmt, argp);    va_end(argp);    LeaveCriticalSection(&logsec);}//Log}int main(int argc,char * argv[]){    InitializeCriticalSection(&logsec);    Log("This is a Log from FILE:%s LINE:%d\n", __FILE__, __LINE__);    DeleteCriticalSection(&logsec);    return 0;}
[解决办法]
查一下log4cxx.

热点排行