log_process_module.cpp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #include "log_process_module.h"
  2. #include <iostream>
  3. #include <time.h>
  4. #include <string.h>
  5. #pragma warning(disable:4267)
  6. #pragma warning(disable:4996)
  7. using namespace std;
  8. log4cpp::Appender *appender[LOG_FILE_NUM];
  9. log4cpp::Layout *layout[LOG_FILE_NUM];
  10. log4cpp::Category* category[LOG_FILE_NUM];
  11. char* log_file_name[LOG_FILE_NUM] = {"./sys/syslog.txt"};
  12. char* log_appender_name[LOG_FILE_NUM] = {"syslog"};
  13. char* log_category_name[LOG_FILE_NUM] = {"syslog"};
  14. int log_module_init(void)
  15. {
  16. UINT32 i = 0;
  17. system("mkdir sys");
  18. for(i=0; i<LOG_FILE_NUM; i++)
  19. {
  20. //appender[i] = new log4cpp::FileAppender(log_appender_name[i], log_file_name[i]);
  21. appender[i] = new log4cpp::RollingFileAppender("runing_sys_log", log_file_name[i], ROLLING_LOG_FILE_SIZE, ROLLING_LOG_FILE_NUM);
  22. layout[i] = new log4cpp::SimpleLayout();
  23. category[i] = &(log4cpp::Category::getInstance(log_category_name[i]));
  24. appender[i]->setLayout(layout[i]);
  25. category[i]->setAppender(appender[i]);
  26. category[i]->setPriority(log4cpp::Priority::INFO);
  27. }
  28. return 0;
  29. }
  30. int sys_log_print(UINT debugLevel, UINT logFileIndex, char* logStr)
  31. {
  32. if(NULL == logStr)
  33. {
  34. return 0;
  35. }
  36. char buffer[LOG_BUF_SIZE + 50] = {0};
  37. const time_t t = time(NULL);
  38. struct tm* current_time = localtime(&t);
  39. sprintf(buffer, "[%4d-%02d-%02d %02d:%02d:%02d]",
  40. current_time->tm_year + 1900,
  41. current_time->tm_mon + 1,
  42. current_time->tm_mday,
  43. current_time->tm_hour,
  44. current_time->tm_min,
  45. current_time->tm_sec);
  46. strcat (buffer, logStr);
  47. switch (debugLevel)
  48. {
  49. case SYS_LOG_INFO:
  50. category[logFileIndex]->info(buffer);
  51. break;
  52. case SYS_LOG_WARNING:
  53. category[logFileIndex]->warn(buffer);
  54. break;
  55. case SYS_LOG_ERROR:
  56. category[logFileIndex]->error(buffer);
  57. break;
  58. default:
  59. category[logFileIndex]->info(buffer);
  60. }
  61. return 0;
  62. }
  63. int debug_print(UINT debugLevel, char* logStr)
  64. {
  65. sys_log_print(debugLevel, 0, logStr);
  66. return 0;
  67. }