打印LOG
2013年12月31日
⁄ 综合
⁄ 共 1604字 ⁄ 字号
小 中 大
-
- enum _LOG_LEVEL
- {
- _LOG_LEVEL_ERROR = 0,
- _LOG_LEVEL_DEBUG,
- _LOG_LEVEL_RELEASE,
- };
-
- class CTimeBase
- {
- public:
- static string GetCurrentTime()
- {
- string strTime = "";
- struct tm *ptm = NULL;
- time_t tme;
- tme = time(NULL);
- ptm = localtime(&tme);
- char szTime[256];
- memset(szTime, 0, 256);
- sprintf(szTime, "%d-%02d-%02d %02d:%02d:%02d", (ptm->tm_year + 1900),
- ptm->tm_mon, ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
- strTime = szTime;
- return strTime;
- }
- public:
- };
-
- void Log(size_t nLogLevel, char *pszFmt, va_list argptr)
- {
- assert(pszFmt != NULL);
- assert(strlen(pszFmt) < 1024);
-
- switch(nLogLevel)
- {
- case _LOG_LEVEL_DEBUG:
- {
- char szLogLine[1000];
- if (_vsntprintf(szLogLine, ARRSIZE(szLogLine), pszFmt, argptr) == -1)
- szLogLine[ARRSIZE(szLogLine) - 1] = _T('/0');
- char szFullLogLine[1024];
- int iLen = _sntprintf(&szFullLogLine[0], sizeof(szFullLogLine),
- _T("%s: %s/r/n"), CTimeBase::GetCurrentTime().c_str(), pszFmt);
- TRACE(szFullLogLine);
- break;
- }
- case _LOG_LEVEL_RELEASE:
- {
- break;
- }
- default:
- {
- break;
- }
- };
- }
- void PrintLog(size_t nLogLevel, char *pszFmt, ...)
- {
- assert(pszFmt != NULL);
-
- va_list argp;
- va_start(argp, pszFmt);
- Log(nLogLevel, pszFmt, argp);
- va_end(argp);
- }