现在的位置: 首页 > 综合 > 正文

打印LOG

2013年12月31日 ⁄ 综合 ⁄ 共 1604字 ⁄ 字号 评论关闭
  1.  ////////////////////////////////////////////////////////////////////////////////////
  2.  enum _LOG_LEVEL //LOG级别
  3.  {
  4.   _LOG_LEVEL_ERROR = 0,
  5.   _LOG_LEVEL_DEBUG,
  6.   _LOG_LEVEL_RELEASE,
  7.  };
  8.  ////////////////////////////////////////////////////////////////////////////////////
  9.  class CTimeBase
  10.  {
  11.  public:
  12.   static string GetCurrentTime()//获取当前时间
  13.   {
  14.    string strTime = "";
  15.    struct tm *ptm = NULL;
  16.    time_t tme;
  17.    tme = time(NULL);
  18.    ptm = localtime(&tme);
  19.    char szTime[256];
  20.    memset(szTime, 0, 256);
  21.    sprintf(szTime, "%d-%02d-%02d %02d:%02d:%02d", (ptm->tm_year + 1900),
  22.     ptm->tm_mon, ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
  23.    strTime = szTime;
  24.    return strTime;
  25.   }
  26.  public:
  27.  };
  28.  ////////////////////////////////////////////////////////////////////////////////////
  29.  void Log(size_t nLogLevel, char *pszFmt, va_list argptr)
  30.  {
  31.   assert(pszFmt != NULL);
  32.   assert(strlen(pszFmt) < 1024);
  33.   
  34.   switch(nLogLevel)
  35.   {
  36.   case _LOG_LEVEL_DEBUG:
  37.    {
  38.     char szLogLine[1000];
  39.     if (_vsntprintf(szLogLine, ARRSIZE(szLogLine), pszFmt, argptr) == -1)
  40.      szLogLine[ARRSIZE(szLogLine) - 1] = _T('/0');
  41.     char szFullLogLine[1024];
  42.     int iLen = _sntprintf(&szFullLogLine[0], sizeof(szFullLogLine),
  43.      _T("%s: %s/r/n"), CTimeBase::GetCurrentTime().c_str(), pszFmt);
  44.     TRACE(szFullLogLine);
  45.     break;
  46.    }
  47.   case _LOG_LEVEL_RELEASE:
  48.    {
  49.     break;
  50.    }
  51.   default:
  52.    {
  53.     break;
  54.    }
  55.   };
  56.  }
  57. //调用此函数打印LOG 如:PrintLog(_LOG_LEVEL_DEBUG, "%s, %d", "ErrorCode = ", 2000);
  58.  void PrintLog(size_t nLogLevel, char *pszFmt, ...)
  59.  {
  60.   assert(pszFmt != NULL);
  61.   
  62.   va_list argp;
  63.   va_start(argp, pszFmt);
  64.   Log(nLogLevel, pszFmt, argp);
  65.   va_end(argp);
  66.  } 

抱歉!评论已关闭.