diff --git a/breadcrumbs/include/Logger.h b/breadcrumbs/include/Logger.h new file mode 100644 index 0000000..d513e1d --- /dev/null +++ b/breadcrumbs/include/Logger.h @@ -0,0 +1,44 @@ +#ifndef LOGGER_HPP +#define LOGGER_HPP + +#include +#include +#include +#include +#include + +using namespace std; + + + +class Logger { +public: + int logging_Level = 1; + string filename = "log.txt"; + + +}; + +void write_log(string msg, int msg_level, string filename, Logger* logObject) { + string line; + ofstream log_file; + log_file.open(filename, std::ios_base::app); + if (logObject->logging_Level <= msg_level) { + //for (int i = 0; i < &msg.size; i++) + log_file << msg; + + } + log_file.close(); +} + +Logger* logger = NULL; +Logger* getLogger() { + if (logger == NULL) { + logger = new Logger(); + + } + return logger; +} + +//Logger* logger = getLogger(); +#endif diff --git a/breadcrumbs/src/comms/AlgorithmServer.cpp b/breadcrumbs/src/comms/AlgorithmServer.cpp index 84df34e..5d08e32 100644 --- a/breadcrumbs/src/comms/AlgorithmServer.cpp +++ b/breadcrumbs/src/comms/AlgorithmServer.cpp @@ -1,5 +1,8 @@ #include "AlgorithmServer.hpp" +#include "Logger.h" + +//Logger* logger = getLogger(); AlgorithmServer::AlgorithmServer(size_t numClients) { @@ -17,6 +20,7 @@ AlgorithmServer::~AlgorithmServer() void AlgorithmServer::serverThreadRuntime() { + Logger* logger = getLogger(); int iResult; clientThreadsMutex = CreateMutex(NULL, false, NULL); @@ -65,6 +69,7 @@ void AlgorithmServer::serverThreadRuntime() iResult = listen(ListenSocket, SOMAXCONN); if (iResult == SOCKET_ERROR) { + //write_log("listen failed with error\n", 1, logger->filename, logger); printf("listen failed with error: %d\n", WSAGetLastError()); closesocket(ListenSocket); WSACleanup(); @@ -75,10 +80,17 @@ void AlgorithmServer::serverThreadRuntime() // Accept a client socket while (continueThread) { + Logger* logger = getLogger(); + //logger.filename = "log2.txt"; + write_log("Listening for clients...\n", 1, logger->filename, logger); printf("Listening for clients...\n"); ClientSocket = accept(ListenSocket, NULL, NULL); + write_log("Hello new client!\n", 1, logger->filename, logger); printf("Hello new client!\n"); if (ClientSocket == INVALID_SOCKET) { + write_log("accept failed with error: ", 1, logger->filename, logger); + write_log(std::to_string(WSAGetLastError()), 1, logger->filename, logger); + write_log("\n", 1, logger->filename, logger); printf("accept failed with error: %d\n", WSAGetLastError()); AcceptFailures++; if (AcceptFailures >= MAX_ACCEPT_FAILURES) @@ -115,6 +127,7 @@ void AlgorithmServer::serverThreadRuntime() unlockClientThreadsMutex(); } else { + write_log("Could not acquire mutex to add new client thread\n", 1, logger->filename, logger); printf("Could not acquire mutex to add new client thread\n"); } } @@ -134,6 +147,7 @@ vector* AlgorithmServer::getAllIncomingAttributes() Polls DataSyncThreads for new updates Updates master storage accordingly */ + Logger* logger = getLogger(); vector* newAttribs = new vector; if (lockClientThreadsMutex() == STATUS_WAIT_0) { @@ -145,6 +159,7 @@ vector* AlgorithmServer::getAllIncomingAttributes() unlockClientThreadsMutex(); } else { + write_log("Could not acquire mutex to add new client thread\n", 1, logger->filename, logger); printf("Could not acquire mutex to get incoming attributes.\n"); } return newAttribs; diff --git a/breadcrumbs/src/comms/DataSyncThread.cpp b/breadcrumbs/src/comms/DataSyncThread.cpp index 5974754..fb86574 100644 --- a/breadcrumbs/src/comms/DataSyncThread.cpp +++ b/breadcrumbs/src/comms/DataSyncThread.cpp @@ -1,6 +1,6 @@ #include "DataSyncThread.hpp" - +#include void DataSyncThread::threadRuntime() { @@ -14,7 +14,7 @@ void DataSyncThread::threadRuntime() while (continueThread && iResult > 0) { - + //write_log("Waiting to receive bytes\n", 1, logger->filename, logger); printf("Waiting to receive bytes\n"); if (!readyToReceive()) continue; @@ -137,6 +137,9 @@ void DataSyncThread::startComms() /* Initializes the communication thread */ + //write_log("Start comms: ", 1, logger->filename, logger); + //write_log(std::to_string(incomingAttributes), 1, logger->filename, logger); + printf("Start comms: %d\n", incomingAttributes); if (!threadRunning) { diff --git a/breadcrumbs/src/main/Breadcrumbs.cpp b/breadcrumbs/src/main/Breadcrumbs.cpp index 83ca39f..458cf60 100644 --- a/breadcrumbs/src/main/Breadcrumbs.cpp +++ b/breadcrumbs/src/main/Breadcrumbs.cpp @@ -1,7 +1,7 @@ #include - #include "Config.hpp" + #include "AlgoBreadcrumbs.hpp"