GrpcPrint/PrintS/Logger.cpp

134 lines
2.9 KiB
C++
Raw Normal View History

2024-03-19 17:45:12 +08:00
#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 ]";