log4link.cpp 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. #include "log4link.h"
  2. #define MAX_LOG_LEN 2000
  3. log_link::log_link(VENDORLOG_LEVEL_E t_level, VENDORLOG_TYPE_E t_type)
  4. :m_private(new log_link_private(t_level, t_type))
  5. {
  6. }
  7. log_link::~log_link()
  8. {
  9. if (m_private) delete m_private;
  10. }
  11. log_link& log_link::result_code(std::string value)
  12. {
  13. if(m_private != nullptr)
  14. m_private->result_code = value;
  15. return *this;
  16. }
  17. log_link& log_link::trace_id(std::string value)
  18. {
  19. if (m_private != nullptr)
  20. m_private->trace_id = value;
  21. return *this;
  22. }
  23. log_link& log_link::result_msg(std::string value)
  24. {
  25. if (m_private != nullptr) {
  26. if (value.length() > MAX_LOG_LEN)
  27. m_private->result_msg = value.substr(0, MAX_LOG_LEN);
  28. else
  29. m_private->result_msg = value;
  30. }
  31. return *this;
  32. }
  33. log_link& log_link::log_code(std::string value)
  34. {
  35. if (m_private != nullptr)
  36. m_private->log_code = value;
  37. return *this;
  38. }
  39. log_link& log_link::api(std::string value)
  40. {
  41. if (m_private != nullptr)
  42. m_private->apii = value;
  43. return *this;
  44. }
  45. log_link& log_link::business_id(std::string value)
  46. {
  47. if (m_private != nullptr)
  48. m_private->business_id = value;
  49. return *this;
  50. }
  51. log_link& log_link::tip_msg(std::string value)
  52. {
  53. if (m_private != nullptr)
  54. m_private->tip_msg = value;
  55. return *this;
  56. }
  57. log_link& log_link::src_type(std::string value)
  58. {
  59. if (m_private != nullptr)
  60. m_private->src_type = value;
  61. return *this;
  62. }
  63. log_link& log_link::begin_time(long value)
  64. {
  65. if (m_private != nullptr)
  66. m_private->begin_time = value;
  67. return *this;
  68. }
  69. log_link& log_link::end_time(long value)
  70. {
  71. if (m_private != nullptr)
  72. m_private->end_time = value;
  73. return *this;
  74. }
  75. log_link& log_link::cost_time(long value)
  76. {
  77. if (m_private != nullptr)
  78. m_private->cost_time = value;
  79. return *this;
  80. }
  81. log_link& log_link::log_producer(void* producer)
  82. {
  83. if (m_private != nullptr)
  84. m_private->log_producer = producer;
  85. return *this;
  86. }
  87. log_link& log_link::with_extend_log_or_not(bool value)
  88. {
  89. if (m_private != nullptr)
  90. m_private->do_log = value;
  91. return *this;
  92. }
  93. void log_link::operator()() const
  94. {
  95. if (!m_private->IsAllowToRecord()) {
  96. return;
  97. }
  98. log_item log;
  99. log.Level = (LOG_LEVEL_E)(int)m_private->level;
  100. log.Type = (LOG_TYPE_E)(int)m_private->type;
  101. log.LogCode = (char*)m_private->log_code.c_str();
  102. log.API = (char*)m_private->apii.c_str();
  103. log.ResultCode = (char*)m_private->result_code.c_str();
  104. log.ResultMsg = (char*)m_private->result_msg.c_str();
  105. log.TipMsg = (char*)m_private->tip_msg.c_str();
  106. log.BeginTime = m_private->begin_time;
  107. log.EndTime = m_private->end_time;
  108. log.CostTime = m_private->cost_time;
  109. log.TraceID = (char*)m_private->trace_id.c_str();
  110. log.BussID = (char*)m_private->business_id.c_str();
  111. log.SourceType = (char*)m_private->src_type.c_str();
  112. log.VtmCode = (char*)m_private->log_code.c_str();
  113. log_producer_client* cur = NULL;
  114. if (m_private->log_producer != nullptr) {
  115. cur = (log_producer_client*)m_private->log_producer;
  116. } else {
  117. return;
  118. }
  119. }
  120. void log_link::fetch_log_item(log_item& log)
  121. {
  122. log.Level = (LOG_LEVEL_E)(int)m_private->level;
  123. log.Type = (LOG_TYPE_E)(int)m_private->type;
  124. log.LogCode = (char*)m_private->log_code.c_str();
  125. log.API = (char*)m_private->apii.c_str();
  126. log.ResultCode = (char*)m_private->result_code.c_str();
  127. log.ResultMsg = (char*)m_private->result_msg.c_str();
  128. log.TipMsg = (char*)m_private->tip_msg.c_str();
  129. log.BeginTime = m_private->begin_time;
  130. log.EndTime = m_private->end_time;
  131. log.CostTime = m_private->cost_time;
  132. log.TraceID = (char*)m_private->trace_id.c_str();
  133. log.BussID = (char*)m_private->business_id.c_str();
  134. log.SourceType = (char*)m_private->src_type.c_str();
  135. log.VtmCode = (char*)m_private->log_code.c_str();
  136. }