diff --git a/src/iflytop/components/alsaplayer/AudioPlayerAlsaImpl.cpp b/src/iflytop/components/alsaplayer/AudioPlayerAlsaImpl.cpp index 2d406ce..c2ef1d4 100644 --- a/src/iflytop/components/alsaplayer/AudioPlayerAlsaImpl.cpp +++ b/src/iflytop/components/alsaplayer/AudioPlayerAlsaImpl.cpp @@ -42,7 +42,7 @@ static const std::string TAG("AudioPlayerAlsaImpl"); #define MAX_RETRY_DECODE_NUM 8 #define RETRY_DECODE_TIME_UNIT 300000 -ENABLE_LOGGER_STATIC(AudioPlayerAlsaImpl); +// ENABLE_LOGGER_STATIC(); // static zwsd::core::logger_t logger = AudioPlayerAlsaImpl::AudioPlayerAlsaImpl(const std::string &audio_dev) diff --git a/src/iflytop/core/spdlogfactory/logger_factory.cpp b/src/iflytop/core/spdlogfactory/logger_factory.cpp index 4ff7148..b3da049 100644 --- a/src/iflytop/core/spdlogfactory/logger_factory.cpp +++ b/src/iflytop/core/spdlogfactory/logger_factory.cpp @@ -614,6 +614,15 @@ class MonitoringSpdLoggerConfigTask { }; shared_ptr SpdLoggerFactory::createLogger(string loggerName) { + /** + * @brief + * 如果在main函数之前就创建了logger,会导致部分全局变量未初始化 + */ + if (default_config.empty()) { + spdlog::critical("you may construct a logger {} before main!!", loggerName); + exit(-1); + } + spdlog::critical("create {}", loggerName); lock_guard lock_gu(createLogger_lock); if (!loggerName.empty()) { if (s_loggerNames.size() == 0) { @@ -633,10 +642,6 @@ shared_ptr SpdLoggerFactory::createLogger(string loggerName) { } if (!initializeLogger) { - if (default_config.empty()) { - spdlog::warn("you may construct a logger before main!!"); - exit(-1); - } string configFilePath = getConfigFilePath(); if (!configFilePath.empty() && exist(configFilePath)) { parseSphLogConfig(configFilePath); diff --git a/src/iflytop/core/spdlogfactory/logger_factory.hpp b/src/iflytop/core/spdlogfactory/logger_factory.hpp index 81c9499..be128d6 100644 --- a/src/iflytop/core/spdlogfactory/logger_factory.hpp +++ b/src/iflytop/core/spdlogfactory/logger_factory.hpp @@ -39,9 +39,6 @@ typedef shared_ptr logger_t; #define GET_LOGGER(loggerName) \ iflytop::core::SpdLoggerFactory::Instance().createLogger(#loggerName) -#define ENABLE_LOGGER_STATIC(loggerName) \ - static iflytop::core::logger_t logger = \ - iflytop::core::SpdLoggerFactory::Instance().createLogger(#loggerName); class SpdLoggerFactory { SpdLoggerFactory(){};