feat(app): add threaded logger worker

This commit is contained in:
user
2026-07-21 13:46:06 +04:00
parent ee5fec311c
commit 569208c271
3 changed files with 28 additions and 6 deletions
+5 -1
View File
@@ -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
+7 -1
View File
@@ -1,5 +1,7 @@
#include "logger_worker.hpp"
#include <iostream>
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';
}
}
}
+16 -4
View File
@@ -1,17 +1,29 @@
#include <iostream>
#include <string>
#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;
}