This commit is contained in:
Scott E. Graves 2024-07-25 14:38:27 -05:00
parent 6640394bd3
commit fd2b3c3239
2 changed files with 45 additions and 49 deletions

View File

@ -30,46 +30,44 @@ namespace repertory {
console_consumer::console_consumer() : console_consumer(event_level::info) {}
console_consumer::console_consumer(event_level level) {
static const auto set_level = [](auto *logger, auto next_level) {
static const auto set_level = [](auto next_level) {
switch (next_level) {
case event_level::critical:
logger->set_level(spdlog::level::critical);
spdlog::get("console")->set_level(spdlog::level::critical);
break;
case event_level::error:
logger->set_level(spdlog::level::err);
spdlog::get("console")->set_level(spdlog::level::err);
break;
case event_level::warn:
logger->set_level(spdlog::level::warn);
spdlog::get("console")->set_level(spdlog::level::warn);
break;
case event_level::info:
logger->set_level(spdlog::level::info);
spdlog::get("console")->set_level(spdlog::level::info);
break;
case event_level::debug:
logger->set_level(spdlog::level::debug);
spdlog::get("console")->set_level(spdlog::level::debug);
break;
case event_level::trace:
logger->set_level(spdlog::level::trace);
spdlog::get("console")->set_level(spdlog::level::trace);
break;
default:
logger->set_level(spdlog::level::info);
spdlog::get("console")->set_level(spdlog::level::info);
break;
}
};
logger_ = spdlog::create_async<spdlog::sinks::stdout_color_sink_mt>(
"console_logger");
set_level(logger_.get(), level);
spdlog::drop("console");
logger_ =
spdlog::create_async<spdlog::sinks::stdout_color_sink_mt>("console");
set_level(level);
spdlog::register_logger(logger_);
E_SUBSCRIBE_ALL(process_event);
E_SUBSCRIBE_EXACT(
event_level_changed, [this](const event_level_changed &changed) {
set_level(logger_.get(),
event_level_from_string(
changed.get_new_event_level().get<std::string>()));
});
E_SUBSCRIBE_EXACT(event_level_changed,
[](const event_level_changed &changed) {
set_level(event_level_from_string(
changed.get_new_event_level().get<std::string>()));
});
}
console_consumer::~console_consumer() { E_CONSUMER_RELEASE(); }
@ -77,23 +75,23 @@ console_consumer::~console_consumer() { E_CONSUMER_RELEASE(); }
void console_consumer::process_event(const event &event) const {
switch (event.get_event_level()) {
case event_level::critical:
logger_->critical(event.get_single_line());
spdlog::get("console")->critical(event.get_single_line());
break;
case event_level::error:
logger_->error(event.get_single_line());
spdlog::get("console")->error(event.get_single_line());
break;
case event_level::warn:
logger_->warn(event.get_single_line());
spdlog::get("console")->warn(event.get_single_line());
break;
case event_level::info:
logger_->info(event.get_single_line());
spdlog::get("console")->info(event.get_single_line());
break;
case event_level::debug:
logger_->debug(event.get_single_line());
spdlog::get("console")->debug(event.get_single_line());
break;
case event_level::trace:
default:
logger_->trace(event.get_single_line());
spdlog::get("console")->trace(event.get_single_line());
break;
}
}

View File

@ -32,47 +32,45 @@ logging_consumer::logging_consumer(event_level level,
std::string log_directory) {
log_directory = utils::path::absolute(log_directory);
static const auto set_level = [](auto *logger, auto next_level) {
static const auto set_level = [](auto next_level) {
switch (next_level) {
case event_level::critical:
logger->set_level(spdlog::level::critical);
spdlog::get("file")->set_level(spdlog::level::critical);
break;
case event_level::error:
logger->set_level(spdlog::level::err);
spdlog::get("file")->set_level(spdlog::level::err);
break;
case event_level::warn:
logger->set_level(spdlog::level::warn);
spdlog::get("file")->set_level(spdlog::level::warn);
break;
case event_level::info:
logger->set_level(spdlog::level::info);
spdlog::get("file")->set_level(spdlog::level::info);
break;
case event_level::debug:
logger->set_level(spdlog::level::debug);
spdlog::get("file")->set_level(spdlog::level::debug);
break;
case event_level::trace:
logger->set_level(spdlog::level::trace);
spdlog::get("file")->set_level(spdlog::level::trace);
break;
default:
logger->set_level(spdlog::level::info);
spdlog::get("file")->set_level(spdlog::level::info);
break;
}
};
spdlog::drop("file");
logger_ = spdlog::create_async<spdlog::sinks::rotating_file_sink_mt>(
"file_logger", utils::path::combine(log_directory, {"repertory.log"}),
"file", utils::path::combine(log_directory, {"repertory.log"}),
MAX_LOG_FILE_SIZE, MAX_LOG_FILES);
set_level(logger_.get(), level);
set_level(level);
spdlog::register_logger(logger_);
E_SUBSCRIBE_ALL(process_event);
E_SUBSCRIBE_EXACT(
event_level_changed, [this](const event_level_changed &changed) {
set_level(logger_.get(),
event_level_from_string(
changed.get_new_event_level().get<std::string>()));
});
E_SUBSCRIBE_EXACT(event_level_changed,
[](const event_level_changed &changed) {
set_level(event_level_from_string(
changed.get_new_event_level().get<std::string>()));
});
}
logging_consumer::~logging_consumer() { E_CONSUMER_RELEASE(); }
@ -80,23 +78,23 @@ logging_consumer::~logging_consumer() { E_CONSUMER_RELEASE(); }
void logging_consumer::process_event(const event &event) const {
switch (event.get_event_level()) {
case event_level::critical:
logger_->critical(event.get_single_line());
spdlog::get("file")->critical(event.get_single_line());
break;
case event_level::error:
logger_->error(event.get_single_line());
spdlog::get("file")->error(event.get_single_line());
break;
case event_level::warn:
logger_->warn(event.get_single_line());
spdlog::get("file")->warn(event.get_single_line());
break;
case event_level::info:
logger_->info(event.get_single_line());
spdlog::get("file")->info(event.get_single_line());
break;
case event_level::debug:
logger_->debug(event.get_single_line());
spdlog::get("file")->debug(event.get_single_line());
break;
case event_level::trace:
default:
logger_->trace(event.get_single_line());
spdlog::get("file")->trace(event.get_single_line());
break;
}
}