diff --git a/common/Logger.cpp b/common/Logger.cpp index e48564d7a..cccee71f4 100644 --- a/common/Logger.cpp +++ b/common/Logger.cpp @@ -7,6 +7,7 @@ #include "spdlog/fmt/bin_to_hex.h" #include +#include #include "Logger.h" #include "GitInfo.h" @@ -64,6 +65,15 @@ Logger::Logger(const std::string &service_name, const std::string &file_name) { spdlog_logger = std::make_shared(service_name, std::begin(sinks), std::end(sinks)); if (const auto it = service_levels.find(service_name); it != service_levels.end()) spdlog_logger->set_level(it->second); + { + // The version line goes out once per service: a run makes many loggers of one service (every FFT indexer + // is one). Function-local, as a static Logger (jfjoch_writer's) is made before this file's own statics. + static std::mutex version_mutex; + static std::set version_logged; + std::unique_lock ul(version_mutex); + if (!version_logged.insert(service_name).second) + return; + } if (jfjoch_git_sha1().empty()) spdlog_logger->info("Version {} {}", jfjoch_version(), variant); else