126 lines
3.1 KiB
C++
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;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|