#include "logger.hpp" #include namespace logger { Logger::Logger(const std::string &fileName, LogLevel defaultLevel) : fileName_(fileName), defaultLevel_(defaultLevel) {} Logger::~Logger() = default; core::Status Logger::writeMessage(LogLevel level, const std::string &message) { std::ofstream stream(fileName_, std::ios::app); if (!stream.is_open()) { return core::Status::Failure("Unable to open log file: " + fileName_); } stream << "[" << level.toString() << "] " << message << '\n'; if (!stream.good()) { return core::Status::Failure("Failed to write to log file: " + fileName_); } return core::Status::Success(true); } core::Status Logger::writeMessage(const std::string &message) { return writeMessage(defaultLevel_, message); } Logger Logger::withLogLevel(LogLevel level) const { return Logger(fileName_, level); } Logger Logger::withFileName(const std::string &fileName) const { return Logger(fileName, defaultLevel_); } LogLevel Logger::getLogLevel() const { return defaultLevel_; } const std::string &Logger::getFileName() const { return fileName_; } } // namespace logger