|
@@ -24,6 +24,7 @@
|
|
|
#include <winpr/file.h>
|
|
|
#include <winpr/wlog.h>
|
|
|
#include "sp_httpDefine.h"
|
|
|
+#include <mutex>
|
|
|
#define TAG SPBASE_TAG("sp_logwithlink")
|
|
|
|
|
|
void* g_logProducer = NULL;//为spshell、spbase共用,所以不放入getEntityResource中
|
|
@@ -37,6 +38,7 @@ int g_curEntityIdx = 0;
|
|
|
std::map<std::string, int> g_entityDebugLevelArr;
|
|
|
void* g_logProduceSender = NULL;
|
|
|
int curEntityLogLevel = 1;
|
|
|
+std::mutex g_logMtx;
|
|
|
|
|
|
|
|
|
void Log_GetToken(char* channelId, char* token, char *terminalno, char *reserve1) {
|
|
@@ -113,11 +115,9 @@ public:
|
|
|
CSimpleString VtmCode;
|
|
|
void* logProducer;
|
|
|
bool m_doLog;
|
|
|
- long m_time;
|
|
|
Link_private(LOG_LEVEL_E t_level, LOG_TYPE_E t_type)
|
|
|
: Level(t_level), Type(t_type), BeginTime(0), EndTime(0), CostTime(0), ResultCode("SUC0000"), m_doLog(true)
|
|
|
{
|
|
|
- m_time = time(NULL);
|
|
|
TraceID = ResultMsg = LogCode = API = BussID = TipMsg = SourceType = VtmCode = "";
|
|
|
logProducer = NULL;
|
|
|
}
|
|
@@ -416,7 +416,7 @@ DbgWithLink& DbgWithLink::setVtmCode(CSimpleStringA t_VtmCode) {
|
|
|
}
|
|
|
|
|
|
void DbgWithLink::operator () (const char* str, ...) const {
|
|
|
-
|
|
|
+ std::lock_guard<std::mutex> lock(g_logMtx);
|
|
|
if (str == nullptr)
|
|
|
return;
|
|
|
|
|
@@ -478,12 +478,11 @@ void DbgWithLink::operator () (const char* str, ...) const {
|
|
|
}
|
|
|
if (cur != NULL) {
|
|
|
if (log.Type == LOG_TYPE_SYSTEM && curEntityLogLevel <= log.Level)
|
|
|
- rst = log_producer_client_add_log(cur, &log, 1, m_priPtr->m_time);
|
|
|
+ rst = log_producer_client_add_log(cur, &log, 1, time(NULL));
|
|
|
else if (log.Type != LOG_TYPE_SYSTEM)
|
|
|
- rst = log_producer_client_add_log(cur, &log, 1, m_priPtr->m_time);
|
|
|
+ rst = log_producer_client_add_log(cur, &log, 1, time(NULL));
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
//LOG_LEVEL_DEBUG, LOG_LEVEL_INFO, LOG_LEVEL_WARN, LOG_LEVEL_ERROR, LOG_LEVEL_FATAL
|
|
|
if (!m_priPtr->m_doLog) {
|
|
|
return;
|
|
@@ -512,7 +511,7 @@ void DbgWithLink::operator () (const char* str, ...) const {
|
|
|
}
|
|
|
|
|
|
void DbgWithLink::operator () () const {
|
|
|
-
|
|
|
+ std::lock_guard<std::mutex> lock(g_logMtx);
|
|
|
log_item log;
|
|
|
log.Level = m_priPtr->Level;
|
|
|
log.Type = m_priPtr->Type;
|
|
@@ -541,9 +540,9 @@ void DbgWithLink::operator () () const {
|
|
|
}
|
|
|
if (cur != NULL) {
|
|
|
if (log.Type == LOG_TYPE_SYSTEM && curEntityLogLevel <= log.Level)
|
|
|
- log_producer_client_add_log(cur, &log, 1, m_priPtr->m_time);
|
|
|
+ log_producer_client_add_log(cur, &log, 1, time(NULL));
|
|
|
else if (log.Type != LOG_TYPE_SYSTEM)
|
|
|
- log_producer_client_add_log(cur, &log, 1, m_priPtr->m_time);
|
|
|
+ log_producer_client_add_log(cur, &log, 1, time(NULL));
|
|
|
}
|
|
|
|
|
|
if (!m_priPtr->m_doLog)
|