2026-07-18 23:41:00 +04:00
|
|
|
#include "logger.hpp"
|
|
|
|
|
|
2026-07-19 16:48:54 +04:00
|
|
|
#include <fstream>
|
|
|
|
|
|
2026-07-18 23:41:00 +04:00
|
|
|
namespace logger {
|
|
|
|
|
|
|
|
|
|
Logger::Logger(const std::string &fileName, LogLevel defaultLevel)
|
|
|
|
|
: fileName_(fileName), defaultLevel_(defaultLevel) {}
|
|
|
|
|
|
|
|
|
|
Logger::~Logger() = default;
|
|
|
|
|
|
2026-07-19 16:48:54 +04:00
|
|
|
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_);
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-18 23:41:00 +04:00
|
|
|
return core::Status::Success(true);
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-19 16:48:54 +04:00
|
|
|
core::Status Logger::writeMessage(const std::string &message) {
|
|
|
|
|
return writeMessage(defaultLevel_, message);
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-18 23:41:00 +04:00
|
|
|
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
|