16#ifndef METRICS_LOGGER_HPP
17#define METRICS_LOGGER_HPP
23#include <condition_variable>
42 std::string timestamp;
47 std::queue<LogEntry> logQueue;
48 std::mutex queueMutex;
49 std::condition_variable queueCV;
50 std::atomic<bool> running;
51 std::thread logThread;
52 std::ofstream logFile;
68 std::string getCurrentTimestamp();
102 void logEvent(
const std::string& category,
const std::string& message);
Singleton logger with non-blocking, thread-safe operation.
~MetricsLogger()
Destructor - stops logging thread.
MetricsLogger(const MetricsLogger &)=delete
Deleted copy constructor (Singleton)
static MetricsLogger & getInstance()
Gets singleton instance.
void flush()
Flushes all pending logs (blocking - use only at shutdown)
MetricsLogger & operator=(const MetricsLogger &)=delete
Deleted assignment operator (Singleton)
void logEvent(const std::string &category, const std::string &message)
Logs an event (non-blocking, thread-safe)