6#include <brenta/logger.hpp>
14const std::string logger::subsystem_name =
"logger";
20bool logger::initialized =
false;
26std::expected<void, subsystem::error> logger::initialize()
32 oak::set_level(logger::init_config.log_level);
34 auto file_name = logger::init_config.log_file;
37 auto file = oak::set_file(file_name);
38 if (!file.has_value())
40 ERROR(
"{}: Failed to open log file: {}",
41 logger::subsystem_name, file_name);
42 return std::unexpected(this->subsystem_name);
44 INFO(
"{}: set log file to {}", logger::subsystem_name, file_name);
47 logger::initialized =
true;
48 INFO(
"{}: initialized", logger::subsystem_name);
52std::expected<void, subsystem::error> logger::terminate()
58 logger::initialized =
false;
59 INFO(
"{}: terminated", logger::subsystem_name);
65 return logger::subsystem_name;
70 return logger::initialized;
89 this->conf.log_level = log_level;
95 this->conf.log_file = log_file;
101 logger::init_config = this->conf;
102 return logger::instance();
std::string name() override
Returns the name of the sybsystem.
bool is_initialized() override
Returns true if the subsystem is initialized.