log.c 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdint.h>
  4. #include <string.h>
  5. #include <unistd.h>
  6. #include <time.h>
  7. #include <stdarg.h>
  8. #include <sys/timeb.h>
  9. #include <sys/time.h>
  10. #include "../ShareMemory/shmMem.h"
  11. #include "../Define/define.h"
  12. #include "log.h"
  13. //------------------------------------------------------------------------------
  14. #define YES 1
  15. #define NO 0
  16. //------------------------------------------------------------------------------
  17. int StoreLogMsg(const char *fmt, ...)
  18. {
  19. char Buf[4096 + 256] = {0};
  20. char buffer[4096] = {0};
  21. int rc = -1;
  22. va_list args;
  23. struct timeb SeqEndTime;
  24. struct tm *tm;
  25. struct SysConfigData *pSysConfig = (struct SysConfigData *)GetShmSysConfigData();
  26. va_start(args, fmt);
  27. rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
  28. va_end(args);
  29. ftime(&SeqEndTime);
  30. SeqEndTime.time = time(NULL);
  31. tm = localtime(&SeqEndTime.time);
  32. if (pSysConfig->SwitchDebugFlag == YES) {
  33. sprintf(Buf, "%02d:%02d:%02d:%03d - %s",
  34. tm->tm_hour,
  35. tm->tm_min,
  36. tm->tm_sec,
  37. SeqEndTime.millitm,
  38. buffer);
  39. printf("%s", Buf);
  40. } else {
  41. sprintf(Buf, "echo \"%04d-%02d-%02d %02d:%02d:%02d:%03d - %s\" >> /Storage/SystemLog/[%04d.%02d]SystemLog",
  42. tm->tm_year + 1900,
  43. tm->tm_mon + 1,
  44. tm->tm_mday,
  45. tm->tm_hour,
  46. tm->tm_min,
  47. tm->tm_sec,
  48. SeqEndTime.millitm,
  49. buffer,
  50. tm->tm_year + 1900,
  51. tm->tm_mon + 1);
  52. system(Buf);
  53. }
  54. return rc;
  55. }
  56. int StoreEventLogMsg(const char *fmt, ...)
  57. {
  58. char Buf[4096 + 256];
  59. char buffer[4096];
  60. time_t CurrentTime;
  61. struct tm *tm;
  62. struct timeval tv;
  63. va_list args;
  64. struct SysConfigData *pSysConfig = (struct SysConfigData *)GetShmSysConfigData();
  65. va_start(args, fmt);
  66. int rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
  67. va_end(args);
  68. memset(Buf, 0, sizeof(Buf));
  69. CurrentTime = time(NULL);
  70. tm = localtime(&CurrentTime);
  71. gettimeofday(&tv, NULL); // get microseconds, 10^-6
  72. if ((pSysConfig->ModelName != NULL) &&
  73. (pSysConfig->SerialNumber != NULL) &&
  74. (strlen((char *)pSysConfig->ModelName) >= 14)) {
  75. sprintf(Buf, "echo -n \"[%04d.%02d.%02d %02d:%02d:%02d.%06ld]%s\" >> /Storage/EventLog/[%04d.%02d]%s_%s_EventLog",
  76. tm->tm_year + 1900,
  77. tm->tm_mon + 1,
  78. tm->tm_mday,
  79. tm->tm_hour,
  80. tm->tm_min,
  81. tm->tm_sec,
  82. tv.tv_usec,
  83. buffer,
  84. tm->tm_year + 1900,
  85. tm->tm_mon + 1,
  86. pSysConfig->ModelName,
  87. pSysConfig->SerialNumber);
  88. } else {
  89. sprintf(Buf, "echo -n \"[%04d.%02d.%02d %02d:%02d:%02d.%06ld]%s\" >> /Storage/EventLog/[%04d.%02d]EventLog",
  90. tm->tm_year + 1900,
  91. tm->tm_mon + 1,
  92. tm->tm_mday,
  93. tm->tm_hour,
  94. tm->tm_min,
  95. tm->tm_sec,
  96. tv.tv_usec,
  97. buffer,
  98. tm->tm_year + 1900,
  99. tm->tm_mon + 1);
  100. }
  101. #ifdef SystemLogMessage
  102. system(Buf);
  103. #endif //SystemLogMessage
  104. #ifdef ConsloePrintLog
  105. printf("[%04d.%02d.%02d %02d:%02d:%02d.%06ld]%s", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, tv.tv_usec, buffer);
  106. #endif //ConsloePrintLog
  107. return rc;
  108. }