#include "log4link.h" #define MAX_LOG_LEN 2000 log_link::log_link(VENDORLOG_LEVEL_E t_level, VENDORLOG_TYPE_E t_type) :m_private(new log_link_private(t_level, t_type)) { } log_link::~log_link() { if (m_private) delete m_private; } log_link& log_link::result_code(std::string value) { if(m_private != nullptr) m_private->result_code = value; return *this; } log_link& log_link::trace_id(std::string value) { if (m_private != nullptr) m_private->trace_id = value; return *this; } log_link& log_link::result_msg(std::string value) { if (m_private != nullptr) { if (value.length() > MAX_LOG_LEN) m_private->result_msg = value.substr(0, MAX_LOG_LEN); else m_private->result_msg = value; } return *this; } log_link& log_link::log_code(std::string value) { if (m_private != nullptr) m_private->log_code = value; return *this; } log_link& log_link::api(std::string value) { if (m_private != nullptr) m_private->apii = value; return *this; } log_link& log_link::business_id(std::string value) { if (m_private != nullptr) m_private->business_id = value; return *this; } log_link& log_link::tip_msg(std::string value) { if (m_private != nullptr) m_private->tip_msg = value; return *this; } log_link& log_link::src_type(std::string value) { if (m_private != nullptr) m_private->src_type = value; return *this; } log_link& log_link::begin_time(long value) { if (m_private != nullptr) m_private->begin_time = value; return *this; } log_link& log_link::end_time(long value) { if (m_private != nullptr) m_private->end_time = value; return *this; } log_link& log_link::cost_time(long value) { if (m_private != nullptr) m_private->cost_time = value; return *this; } log_link& log_link::log_producer(void* producer) { if (m_private != nullptr) m_private->log_producer = producer; return *this; } log_link& log_link::with_extend_log_or_not(bool value) { if (m_private != nullptr) m_private->do_log = value; return *this; } void log_link::operator()() const { if (!m_private->IsAllowToRecord()) { return; } log_item log; log.Level = (LOG_LEVEL_E)(int)m_private->level; log.Type = (LOG_TYPE_E)(int)m_private->type; log.LogCode = (char*)m_private->log_code.c_str(); log.API = (char*)m_private->apii.c_str(); log.ResultCode = (char*)m_private->result_code.c_str(); log.ResultMsg = (char*)m_private->result_msg.c_str(); log.TipMsg = (char*)m_private->tip_msg.c_str(); log.BeginTime = m_private->begin_time; log.EndTime = m_private->end_time; log.CostTime = m_private->cost_time; log.TraceID = (char*)m_private->trace_id.c_str(); log.BussID = (char*)m_private->business_id.c_str(); log.SourceType = (char*)m_private->src_type.c_str(); log.VtmCode = (char*)m_private->log_code.c_str(); log_producer_client* cur = NULL; if (m_private->log_producer != nullptr) { cur = (log_producer_client*)m_private->log_producer; } else { return; } } void log_link::fetch_log_item(log_item& log) { log.Level = (LOG_LEVEL_E)(int)m_private->level; log.Type = (LOG_TYPE_E)(int)m_private->type; log.LogCode = (char*)m_private->log_code.c_str(); log.API = (char*)m_private->apii.c_str(); log.ResultCode = (char*)m_private->result_code.c_str(); log.ResultMsg = (char*)m_private->result_msg.c_str(); log.TipMsg = (char*)m_private->tip_msg.c_str(); log.BeginTime = m_private->begin_time; log.EndTime = m_private->end_time; log.CostTime = m_private->cost_time; log.TraceID = (char*)m_private->trace_id.c_str(); log.BussID = (char*)m_private->business_id.c_str(); log.SourceType = (char*)m_private->src_type.c_str(); log.VtmCode = (char*)m_private->log_code.c_str(); }