今天在排查一个接口被疯狂调用。

由于该接口被广泛调用,无法通过走读形式排查。故对接口进行了一次封装,然后对着日志轻松排查。

封装示例:

点击(此处)折叠或打开

  1. #if DEBUG
  2. #define xx(szValue,acName,iValueLen) __xx(szValue,acName,iValueLen)
  3. #else
  4. static inline int mysyslog_message(const char *fmt , ...)
  5. {
  6.     FILE *fp = NULL;
  7.     fp = fopen("/tmp/nvram.log","a");
  8.     if (fp == NULL)
  9.     {
  10.     printf("open file failure");
  11.     }
  12.     char szBuf[1024]= {0};
  13.     va_list ap;
  14.     if (fmt == NULL)
  15.     {
  16.         fclose(fp);
  17.         return;
  18.     }
  19.     va_start(ap, fmt);
  20.     vsprintf(szBuf,fmt, ap);
  21.     va_end(ap);
  22.     fputs(szBuf, fp);
  23.     fclose(fp);
  24.     return 1;
  25. }

  26. #define xx(szValue,acName,iValueLen) mysyslog_message("[%s][%d][%s]nvram_get\n",__FILE__,__LINE__,__FUNCTION__)?__xx(szValue,acName,iValueLen):1
  27. #endif

09-29 14:08