#include "main.h"
CLog::CLog()
{
logfile = fopen("saves/logs.txt", "a");
char buf[256];
char timestr[128];
time_t rawtime;
time(&rawtime);
struct tm * timeinfo;
timeinfo = localtime(&rawtime);
strftime(timestr, 128, "%d-%m-%Y", timeinfo);
#ifdef _IRR_WINDOWS_
snprintf(buf, 256, "\r\n\r\n\r\n--------------\r\n| Log opened |\r\n| %s |\r\n--------------\r\n\r\n", timestr);
#else
snprintf(buf, 256, "\n\n\n--------------\n| Log opened |\n| %s |\n--------------\n\n", timestr);
#endif
fputs(buf, logfile);
info("LOG", "Log file opened.");
}
CLog::~CLog()
{
info("LOG", "Log file closed.");
fclose(logfile);
}
void CLog::PutInLog(const char source[], const char type[], const char msg[])
{
char buf[256];
char timestr[128];
time_t rawtime;
time(&rawtime);
struct tm * timeinfo;
timeinfo = localtime(&rawtime);
strftime(timestr, 128, "%H:%M:%S", timeinfo);
#ifdef _IRR_WINDOWS_
snprintf(buf, 256, "[%s] [%8s] [%4s] %s\r\n", timestr, source, type, msg);
#else
snprintf(buf, 256, "[%s] [%8s] [%4s] %s\n", timestr, source, type, msg);
#endif
fputs(buf, logfile);
}
int CLog::error(int errnum, const char errmsg[])
{
char buf[256];
if(errnum!=0) snprintf(buf, 256, "%s (error ID: %d)", errmsg, errnum);
else snprintf(buf, 256, "%s", errmsg);
cerr << "ERROR: " << buf << endl;
PutInLog("", "ERR", buf);
return errnum;
}
int CLog::warning(int errnum, const char errmsg[])
{
char buf[256];
if(errnum!=0) snprintf(buf, 256, "%s (error ID: %d)", errmsg, errnum);
else snprintf(buf, 256, "%s", errmsg);
cerr << "WARNING: " << buf << endl;
PutInLog("", "WARN", buf);
return errnum;
}
void CLog::info(const char errmsg[])
{
char buf[256];
snprintf(buf, 256, "%s", errmsg);
cout << "INFO: " << buf << endl;
PutInLog("", "INFO", buf);
}
void CLog::debug(const char errmsg[])
{
char buf[256];
snprintf(buf, 256, "%s", errmsg);
#ifdef CONFIG_DEBUG_MODE
cout << "DEBUG: " << buf << endl;
#endif
PutInLog("", "DBG", buf);
}
int CLog::error(int errnum, const char source[], const char errmsg[])
{
char buf[256];
if(errnum!=0) snprintf(buf, 256, "%s (error ID: %d)", errmsg, errnum);
else snprintf(buf, 256, "%s", errmsg);
cerr << "ERROR: " << buf << endl;
PutInLog(source, "ERR", buf);
return errnum;
}
int CLog::warning(int errnum, const char source[], const char errmsg[])
{
char buf[256];
if(errnum!=0) snprintf(buf, 256, "%s (error ID: %d)", errmsg, errnum);
else snprintf(buf, 256, "%s", errmsg);
cerr << "WARNING: " << buf << endl;
PutInLog(source, "WARN", buf);
return errnum;
}
void CLog::info(const char source[], const char errmsg[])
{
char buf[256];
snprintf(buf, 256, "%s", errmsg);
cout << "INFO: " << buf << endl;
PutInLog(source, "INFO", buf);
}
void CLog::debug(const char source[], const char errmsg[])
{
char buf[256];
snprintf(buf, 256, "%s", errmsg);
#ifdef CONFIG_DEBUG_MODE
cout << "DEBUG: " << buf << endl;
#endif
PutInLog(source, "DBG", buf);
}