From 54319f7cdd6fc5c5c954ca4c96241141c93da909 Mon Sep 17 00:00:00 2001 From: Anonymous275 Date: Mon, 3 Feb 2020 21:52:11 +0200 Subject: [PATCH] Fully Polished the loggin system --- src/Network/Server.cpp | 9 +++++--- src/logger.cpp | 48 +++++++++++++++++++++++++++++------------- src/logger.h | 31 ++++----------------------- src/main.cpp | 32 +++++++++++++++++++++++++--- 4 files changed, 72 insertions(+), 48 deletions(-) diff --git a/src/Network/Server.cpp b/src/Network/Server.cpp index 458ac7c..c3b8f5c 100644 --- a/src/Network/Server.cpp +++ b/src/Network/Server.cpp @@ -1,6 +1,9 @@ #define ENET_IMPLEMENTATION #include "enet.h" +#include #include +#include "../logger.h" + void ParseData(size_t Length, enet_uint8* Data, char* Sender, enet_uint8 ChannelID); //Data Parser void host_server(ENetHost *server) { ENetEvent event; @@ -49,14 +52,14 @@ void ServerMain(int Port, int MaxClients) { /* create a server */ - printf("starting server with a maximum of %d Clients...\n",MaxClients); + info("starting server with a maximum of " + to_string(MaxClients) + " Clients...\n"); server = enet_host_create(&address, MaxClients, 2, 0, 0); if (server == NULL) { - printf("An error occurred while trying to create a server host.\n"); + error("An error occurred while trying to create a server host.\n"); return; } - printf("Waiting for clients on port %d...\n",Port); + info("Waiting for clients on port "+to_string(Port)+"...\n"); while (true) { host_server(server); diff --git a/src/logger.cpp b/src/logger.cpp index 2947d13..5be7e46 100644 --- a/src/logger.cpp +++ b/src/logger.cpp @@ -3,9 +3,10 @@ // +#include #include "logger.h" +void addToLog(basic_string Data); using namespace std; - int loggerlevel; void setLoggerLevel(char level_string[]) { @@ -72,23 +73,40 @@ stringstream getDate() { return date; } -/* -void info(char obj[]) { - if (level <= 2) - cout << getDate().str() << "\u001b[36m" << "[INFO]" << "\u001b[0m" << " " << obj << endl; + + + + + + + + +void info(basic_string toPrint) { + if (loggerlevel <= 2){ + cout << getDate().str() << "[INFO] " << toPrint << endl; + addToLog(getDate().str() + "[INFO] " + toPrint + "\n"); + } } -void error(char obj[]) { - if (level <= 4) - cout << getDate().str() << "\x1B[31m" << "[ERRO]" << "\u001b[0m" << " " << obj << endl; +void error(basic_string toPrint) { + if (loggerlevel <= 4) { + cout << getDate().str() << "[ERROR] " << toPrint << endl; + addToLog(getDate().str() + "[ERROR] " + toPrint + "\n"); + } } -void warn(char obj[]) { - if (level <= 3) - cout << getDate().str() << "\u001b[33m" << "[WARN]" << "\u001b[0m" << " " << obj << endl; + +void warn(basic_string toPrint) { + if (loggerlevel <= 3) { + cout << getDate().str() << "[WARN] " << toPrint << endl; + addToLog(getDate().str() + "[WARN] " + toPrint + "\n"); + } } -void debug(char obj[]) { - if (level <= 1) - cout << getDate().str() << "\u001b[35m" << "[DBUG]" << "\u001b[0m" << " " << obj << endl; -}*/ \ No newline at end of file + +void debug(basic_string toPrint) { + if (loggerlevel <= 1) { + cout << getDate().str() << "[DEBUG] " << toPrint << endl; + addToLog(getDate().str() + "[DEBUG] " + toPrint + "\n"); + } +} \ No newline at end of file diff --git a/src/logger.h b/src/logger.h index 0df8c2b..38571e8 100644 --- a/src/logger.h +++ b/src/logger.h @@ -2,7 +2,6 @@ // Created by jojos38 on 28.01.2020. // -#ifndef LOGGER_H #define LOGGER_H #include @@ -10,32 +9,10 @@ #include #include using namespace std; - extern int loggerlevel; stringstream getDate(); void setLoggerLevel(char level_string[]); - -template -void info(const T& toPrint) { - if (loggerlevel <= 2) - cout << getDate().str() << "[INFO] " << toPrint << endl; -} -template -void error(const T& toPrint) { - if (loggerlevel <= 4) - cout << getDate().str() "[ERRO] " << toPrint << endl; -} - -template -void warn(const T& toPrint) { - if (loggerlevel <= 3) - cout << getDate().str() << "[WARN] " << toPrint << endl; -} - -template -void debug(const T& toPrint) { - if (loggerlevel <= 1) - cout << getDate().str() << "[DBUG] " << toPrint << endl; -} - -#endif // LOGGER_H +void info(basic_string toPrint); +void warn(basic_string toPrint); +void error(basic_string toPrint); +void debug(basic_string toPrint); diff --git a/src/main.cpp b/src/main.cpp index 525f326..a586487 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -5,15 +5,16 @@ #include "main.h" #include #include +#include #include "logger.h" using namespace std; //nameSpace STD - void DebugData(); +void LogInit(); void ParseConfig(); void ServerMain(int Port, int MaxClients); - bool Debug = false; +void addToLog(basic_string Data); int Port = 30814; int MaxClients = 10; string MapName = "levels/gridmap/level.json"; @@ -22,11 +23,11 @@ string ServerName = "BeamNG-MP FTW"; //Entry int main() { ParseConfig(); + LogInit(); if(Debug){ //checks if debug is on DebugData(); //Prints Debug Data } setLoggerLevel("ALL"); - ServerMain(Port, MaxClients); } @@ -47,3 +48,28 @@ void SetMainValues(bool D, int P,int MP,string Name,string serverName){ MaxClients = MP; } +void LogInit(){ + ifstream InFileStream; + InFileStream.open("Server.log"); + if(InFileStream.good()){ + remove("Server.log"); + } + InFileStream.close(); +} + +void addToLog(basic_string Data){ + basic_string LogData = ""; + ifstream InFileStream; + InFileStream.open("Server.log"); + if(InFileStream.good()){ + string line; + while (getline(InFileStream, line)) { + LogData = LogData + line + "\n"; + } + } + ofstream LFS; + LFS.open ("Server.log"); + LFS << LogData; + LFS << Data.c_str(); + LFS.close(); +} \ No newline at end of file