diff --git a/app/Makefile b/app/Makefile index d81ac72..7109bcb 100644 --- a/app/Makefile +++ b/app/Makefile @@ -1,4 +1,5 @@ CXXFLAGS := \ + -I$(ROOT_DIR)/app/include \ -I$(ROOT_DIR)/core/include \ -I$(ROOT_DIR)/logger/include @@ -9,7 +10,10 @@ LDLIBS += -llogger TARGET := $(BUILD_DIR)/logger_app -SRC := src/main.cpp +SRC := \ + src/main.cpp \ + src/message_queue.cpp \ + src/logger_worker.cpp .PHONY: all clean diff --git a/app/src/logger_worker.cpp b/app/src/logger_worker.cpp index 7c6c9d5..85c3bf3 100644 --- a/app/src/logger_worker.cpp +++ b/app/src/logger_worker.cpp @@ -1,5 +1,7 @@ #include "logger_worker.hpp" +#include + namespace app { LoggerWorker::LoggerWorker(logger::Logger &logger, MessageQueue &queue) @@ -21,7 +23,11 @@ void LoggerWorker::stop() { void LoggerWorker::process() { while (auto message = queue_.pop()) { - logger_.writeMessage(message->level, message->message); + auto status = logger_.writeMessage(message->level, message->message); + + if (!status.isSuccess()) { + std::cerr << "Logger error: " << status.getError() << '\n'; + } } } diff --git a/app/src/main.cpp b/app/src/main.cpp index 460b9b3..002096a 100644 --- a/app/src/main.cpp +++ b/app/src/main.cpp @@ -1,17 +1,29 @@ #include +#include #include "logger.hpp" +#include "logger_worker.hpp" +#include "message_queue.hpp" int main() { logger::Logger logger("app.log", logger::LogLevel::info()); - auto status = logger.writeMessage("Hello from shared library"); + app::MessageQueue queue; + app::LoggerWorker worker(logger, queue); - if (!status.isSuccess()) { - std::cerr << status.getError() << '\n'; + worker.start(); - return 1; + std::string message; + + while (std::getline(std::cin, message)) { + if (message == "exit") { + break; + } + + queue.push({logger::LogLevel::info(), message}); } + worker.stop(); + return 0; }