cppSimpleLogger/logger.cpp

126 lines
3.1 KiB
C++

#include "logger.h"
using namespace std;
string version = "0.1";
Logger::Logger(string pLogPath,struct sID id) {
this->logPath =pLogPath;
writeLog("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
writeLog("+ +");
writeLog("+ Device: " + id.deviceID + " -- " + id.description + " +");
writeLog("+ +");
writeLog("+ Software ID: " + id.softwareID + " -- Build time: " + __DATE__ + " " + __TIME__ + " +");
writeLog("+ +");
writeLog("+ Hardware ID: " + id.hardwareID + " -- MAC: " + getMacAddress() + " +");
writeLog("+ +");
writeLog("+ cppSimpleLogger -- available from https://git.mosad.xyz/localhorst/cppSimpleLogger -- Version: " + version + " +");
writeLog("+ +");
writeLog("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
newLine();
info("Created new log file");
newLine();
}
Logger::~Logger() {
}
void Logger::info(string s) {
string tmp = getTimestamp() + " [INFO] " + s;
writeLog(tmp);
}
void Logger::warning(string s) {
string tmp = getTimestamp() + " [WARNING] " + s;
writeLog(tmp);
}
void Logger::error(string s) {
string tmp = getTimestamp() + " [ERROR] " + s;
writeLog(tmp);
}
void Logger::writeLog(string s) {
ofstream logFile;
logFile.open(this->logPath, ios_base::app);
logFile << (s + "\n");
logFile.close();
}
void Logger::newLine() {
writeLog(" ");
}
string Logger::getTimestamp() {
time_t rawtime;
struct tm * timeinfo;
char buffer [80];
time (&rawtime);
timeinfo = localtime (&rawtime);
strftime (buffer,80,"%d/%m/%Y %T",timeinfo);
return buffer;
}
string Logger::getMacAddress()
{
struct ifreq ifr;
int s;
if ((s = socket(AF_INET, SOCK_STREAM,0)) < 0) {
//perror("socket");
//return -1;
}
strcpy(ifr.ifr_name, "eth0");
if (ioctl(s, SIOCGIFHWADDR, &ifr) < 0) {
//perror("ioctl");
strcpy(ifr.ifr_name, "eno1");
if (ioctl(s, SIOCGIFHWADDR, &ifr) < 0) {
//perror("ioctl");
//return -1;
}
}
unsigned char *hwaddr = (unsigned char *)ifr.ifr_hwaddr.sa_data;
char buffer [80];
sprintf(buffer,"%02X:%02X:%02X:%02X:%02X:%02X", hwaddr[0], hwaddr[1], hwaddr[2],
hwaddr[3], hwaddr[4], hwaddr[5]);
close(s);
string tmp = buffer;
//cout << tmp << endl;
return tmp;
}