diff --git a/include/godzilla/Logger.h b/include/godzilla/Logger.h index 9d95b02d..c0ae9013 100644 --- a/include/godzilla/Logger.h +++ b/include/godzilla/Logger.h @@ -3,6 +3,7 @@ #pragma once +#include "godzilla/String.h" #include "spdlog/spdlog.h" #include "spdlog/details/periodic_worker.h" #include @@ -15,6 +16,7 @@ namespace godzilla { class Logger { public: Logger(); + Logger(String name); ~Logger(); /// Set log file name @@ -52,6 +54,7 @@ class Logger { } private: + std::string logger_name; std::shared_ptr spdlgr; std::mutex flusher_mutex; std::unique_ptr periodic_flusher; diff --git a/src/App.cpp b/src/App.cpp index ed1ea0a3..2d9b43a1 100644 --- a/src/App.cpp +++ b/src/App.cpp @@ -65,7 +65,7 @@ App::App(mpi::Communicator comm, Registry & registry, String name) : name(name), mpi_comm(comm), registry(registry), - logger(Qtr::alloc()), + logger(Qtr::alloc(name)), verbosity_level(1), cout_buf_(nullptr), cerr_buf_(nullptr), diff --git a/src/Logger.cpp b/src/Logger.cpp index 37d2c784..04f67212 100644 --- a/src/Logger.cpp +++ b/src/Logger.cpp @@ -8,23 +8,29 @@ namespace godzilla { -Logger::Logger() +Logger::Logger() : logger_name("file_logger") { CALL_STACK_MSG(); - this->spdlgr = spdlog::null_logger_mt("file_logger"); + this->spdlgr = spdlog::null_logger_mt(this->logger_name); +} + +Logger::Logger(String name) : logger_name(fmt::format("file_logger:{}", name)) +{ + CALL_STACK_MSG(); + this->spdlgr = spdlog::null_logger_mt(logger_name); } Logger::~Logger() { - spdlog::drop("file_logger"); + spdlog::drop(this->logger_name); } void Logger::set_log_file_name(fs::path file_name) { CALL_STACK_MSG(); - spdlog::drop("file_logger"); - this->spdlgr = spdlog::basic_logger_mt("file_logger", file_name, true); + spdlog::drop(this->logger_name); + this->spdlgr = spdlog::basic_logger_mt(this->logger_name, file_name, true); this->spdlgr->set_pattern("[%Y %b %d %H:%M:%S.%e] [%l] %v"); }