134 lines
2.9 KiB
C++
134 lines
2.9 KiB
C++
|
#include "Logger.h"
|
|||
|
#include "global.h"
|
|||
|
#include "utils/TimeHelper.h"
|
|||
|
#include <direct.h>
|
|||
|
#include <io.h>
|
|||
|
#include <ctime>
|
|||
|
|
|||
|
using namespace std;
|
|||
|
Logger::Logger()
|
|||
|
:m_realtime(false)
|
|||
|
{
|
|||
|
m_nLogLevel = LogLevelAll;
|
|||
|
m_LogDao = new LogDao();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Logger::~Logger()
|
|||
|
{
|
|||
|
delete m_LogDao;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//д<>ؼ<EFBFBD><D8BC><EFBFBD>Ϣ<EFBFBD>ӿ<EFBFBD>
|
|||
|
void Logger::TraceKeyInfo(const char * info, ...)
|
|||
|
{
|
|||
|
va_list args;
|
|||
|
va_start(args, info);
|
|||
|
Trace(KEYINFOPREFIX, info, args);
|
|||
|
va_end(args);
|
|||
|
}
|
|||
|
|
|||
|
//д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
void Logger::TraceError(const char * error, ...)
|
|||
|
{
|
|||
|
//<2F>жϵ<D0B6>ǰ<EFBFBD><C7B0>д<EFBFBD><D0B4>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>д<EFBFBD><D0B4>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if(m_nLogLevel >= LogLevelStop)return;
|
|||
|
|
|||
|
va_list args;
|
|||
|
va_start(args, error);
|
|||
|
Trace(ERRORPREFIX, error, args);
|
|||
|
va_end(args);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
//д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
void Logger::TraceWarning(const char * warnning, ...)
|
|||
|
{
|
|||
|
//<2F>жϵ<D0B6>ǰ<EFBFBD><C7B0>д<EFBFBD><D0B4>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊֻд<D6BB><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if(m_nLogLevel >= LogLevelNormal)return;
|
|||
|
|
|||
|
va_list args;
|
|||
|
va_start(args, warnning);
|
|||
|
Trace(WARNINGPREFIX, warnning, args);
|
|||
|
va_end(args);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//дһ<D0B4><D2BB><EFBFBD><EFBFBD>Ϣ
|
|||
|
void Logger::TraceInfo(const char * info, ...)
|
|||
|
{
|
|||
|
//<2F>жϵ<D0B6>ǰ<EFBFBD><C7B0>д<EFBFBD><D0B4>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻд<D6BB><D0B4><EFBFBD><EFBFBD><EFBFBD>;<EFBFBD><CDBE><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if(m_nLogLevel >= LogLevelMid)return;
|
|||
|
|
|||
|
va_list args;
|
|||
|
va_start(args, info);
|
|||
|
Trace(INFOPREFIX, info, args);
|
|||
|
va_end(args);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
void Logger::Trace(string prefix, const char *msg, va_list args)
|
|||
|
{
|
|||
|
char buffer[1024];
|
|||
|
|
|||
|
vsprintf_s(buffer, sizeof(buffer), msg, args);
|
|||
|
string content(buffer);
|
|||
|
m_LogDao->AddLog(prefix, content);
|
|||
|
if (m_realtime) {
|
|||
|
sprintf_s(buffer, sizeof(buffer), "%s %s %s", prefix.c_str(), TimeHelper::GetStrNow().c_str(), content.c_str());
|
|||
|
EnterCriticalSection(&m_LogDao->m_LogCs);
|
|||
|
m_LogDao->m_Logs.push_back(string(buffer));
|
|||
|
LeaveCriticalSection(&m_LogDao->m_LogCs);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>д<EFBFBD><D0B4>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
|
|||
|
void Logger::SetLogLevel(EnumLogLevel nLevel)
|
|||
|
{
|
|||
|
m_nLogLevel = nLevel;
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
void Logger::Test()
|
|||
|
{
|
|||
|
char sqlbuf[1024];
|
|||
|
SQLite::Transaction transaction(*m_pDB);
|
|||
|
srand(time(0));
|
|||
|
|
|||
|
for (int i = 0; i < 100;i++) {
|
|||
|
time_t insertime = 1550550203 + i * 10;
|
|||
|
sprintf_s(sqlbuf, sizeof(sqlbuf), "INSERT INTO %s(%s,%s,%s,%s,%s,%s,%s,%s,%s) VALUES(%lld,'%s',%u, '%.3f', '%.3f', '%.3f', '%.3f', '%.3f', '%.3f')",
|
|||
|
STATUS_TABLE_NAME.c_str(),
|
|||
|
STATUS_FIELD_INSERT_TIME.c_str(),
|
|||
|
STATUS_FIELD_JOB_ID.c_str(),
|
|||
|
STATUS_FIELD_LAYER_INDEX.c_str(),
|
|||
|
STATUS_FIELD_OXYGEN.c_str(),
|
|||
|
STATUS_FIELD_INNER_TEMP.c_str(),
|
|||
|
STATUS_FIELD_PLATE_TEMP.c_str(),
|
|||
|
STATUS_FIELD_WIND_RATE.c_str(),
|
|||
|
STATUS_FIELD_HUMIDITY.c_str(),
|
|||
|
STATUS_FIELD_WATER_TEMP.c_str(),
|
|||
|
insertime,
|
|||
|
"123",
|
|||
|
i,
|
|||
|
(float)(rand() % 100),
|
|||
|
(float)(rand() % 100),
|
|||
|
(float)(rand() % 100),
|
|||
|
(float)(rand() % 100),
|
|||
|
(float)(rand() % 100),
|
|||
|
(float)(rand() % 100)
|
|||
|
);
|
|||
|
m_pDB->exec(sqlbuf);
|
|||
|
}
|
|||
|
|
|||
|
transaction.commit();
|
|||
|
|
|||
|
}*/
|
|||
|
|
|||
|
const string Logger::KEYINFOPREFIX = "[KEY ]";
|
|||
|
const string Logger::ERRORPREFIX = "[ERROR]";
|
|||
|
const string Logger::WARNINGPREFIX= "[WARN ]";
|
|||
|
const string Logger::INFOPREFIX = "[INFO ]";
|