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

View File

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