#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; }