6#include <brenta/logger.hpp>
14oak::level logger::log_level;
15std::string logger::log_file;
16const std::string logger::subsystem_name =
"logger";
22bool logger::initialized =
false;
28std::expected<void, subsystem::error> logger::initialize()
34 oak::set_level(this->log_level);
36 if (this->log_file !=
"")
38 auto file = oak::set_file(this->log_file);
39 if (!file.has_value())
41 ERROR(
"{}: Failed to open log file: {}",
42 logger::subsystem_name, log_file);
43 return std::unexpected(this->subsystem_name);
45 INFO(
"{}: set log file to {}", logger::subsystem_name, log_file);
48 logger::initialized =
true;
49 INFO(
"{}: initialized", logger::subsystem_name);
53std::expected<void, subsystem::error> logger::terminate()
59 logger::initialized =
false;
60 INFO(
"{}: terminated", logger::subsystem_name);
66 return logger::subsystem_name;
71 return logger::initialized;
90 this->conf.log_level = log_level;
96 this->conf.log_file = log_file;
102 logger::init_config = this->conf;
103 return logger::instance();
std::string name() override
Returns the name of the sybsystem.
bool is_initialized() override
Returns true if the subsystem is initialized.