Files
pstrace/framework/logger/log.cpp
T
2020-01-04 14:28:08 +04:00

56 lines
1.3 KiB
C++

#include "log.h"
#include <time.h>
#define LOG_BUFF_SIZE (1024*1024)
const char * const SC_LogBase::mSeverityStrings[] = {
" [DEBUG] : ",
" [INFO] : ",
" [WARNING]: ",
" [ERROR] : "
};
char SC_LogBase::mString[LOG_BUFF_SIZE];
uint32_t SC_LogBase::mStringSize = sizeof(SC_LogBase::mString);
SC_LogBase::SC_LogBase(uint32_t id, const char* source) : mID(id)
{
mStringLen = 0;
mCurrentSeverity = SEVERITY_DEBUG;
if(source) {
mSource = source;
}
}
SC_LogBase::~SC_LogBase()
{
Close();
}
void SC_LogBase::FormatString(const char* fmt, va_list args)
{
mStringLen += vsnprintf(mString + mStringLen, mStringSize - mStringLen, fmt, args);
}
void SC_LogBase::FormatPrefix(SC_LogSeverity severity)
{
time_t rawTime;
struct tm * timeinfo;
time(&rawTime);
timeinfo = gmtime(&rawTime);
mStringLen += strftime(mString, sizeof(mString), "%d-%m-%Y %H:%M:%S", timeinfo);
strncpy(mString + mStringLen, mSeverityStrings[(int)severity], strlen(mSeverityStrings[(int)severity]));
mStringLen += strlen(mSeverityStrings[(int)severity]);
}
void SC_LogBase::FormatPostfix()
{
if((mStringLen + 2) < mStringSize) {
mString[mStringLen++] = '\n';
mString[mStringLen++] = 0;
}
}