|
|
@ -258,13 +258,13 @@ static bool mkdirIfNotExist(const string& path) { |
|
|
|
|
|
|
|
class LoggerAndSinks { |
|
|
|
public: |
|
|
|
string loggerName; |
|
|
|
string loggerName; |
|
|
|
set<string> sinkNames; |
|
|
|
}; |
|
|
|
/****************************************************************************************************/ |
|
|
|
|
|
|
|
static map<string, sink_ptr> s_sinks = {}; |
|
|
|
static map<string, shared_ptr<logger>> s_loggers = {}; |
|
|
|
static map<string, sink_ptr> s_sinks = {}; |
|
|
|
static map<string, shared_ptr<logger>> s_loggers = {}; |
|
|
|
static set<shared_ptr<LoggerAndSinks>> s_loggerAndSinks = {}; |
|
|
|
|
|
|
|
static void insertLogger(shared_ptr<logger> var_logger) { |
|
|
@ -300,8 +300,7 @@ static level::level_enum to_level(int value) { |
|
|
|
case SPDLOG_LEVEL_CRITICAL: |
|
|
|
return level::critical; |
|
|
|
default: |
|
|
|
spdlog::critical("level is out of range {} level must in [{},{}]", value, SPDLOG_LEVEL_TRACE, |
|
|
|
SPDLOG_LEVEL_CRITICAL); |
|
|
|
spdlog::critical("level is out of range {} level must in [{},{}]", value, SPDLOG_LEVEL_TRACE, SPDLOG_LEVEL_CRITICAL); |
|
|
|
exit(-1); |
|
|
|
break; |
|
|
|
} |
|
|
@ -310,7 +309,7 @@ static level::level_enum to_level(int value) { |
|
|
|
|
|
|
|
// #define GET(type,value,error_msg,...)
|
|
|
|
#define TRY_GET(type, value_name, default_value) type value_name = tryGet<type>(j, #value_name, default_value)
|
|
|
|
#define GET(T, value_name) T value_name = j.at(#value_name).get<T>();
|
|
|
|
#define GET(T, value_name) T value_name = j.at(#value_name).get<T>();
|
|
|
|
|
|
|
|
static void logger_common_config(logger_t var_logger, json j) { |
|
|
|
TRY_GET(int, level, 2); |
|
|
@ -321,7 +320,7 @@ static void logger_common_config(logger_t var_logger, json j) { |
|
|
|
if (!sinks.empty()) { |
|
|
|
shared_ptr<LoggerAndSinks> las(new LoggerAndSinks()); |
|
|
|
las->loggerName = var_logger->name(); |
|
|
|
las->sinkNames = sinks; |
|
|
|
las->sinkNames = sinks; |
|
|
|
s_loggerAndSinks.insert(las); |
|
|
|
} |
|
|
|
} |
|
|
@ -514,7 +513,7 @@ void core::SpdLoggerFactory::parseSphLogConfig(string path) { |
|
|
|
s_loggers.clear(); |
|
|
|
s_loggerAndSinks.clear(); |
|
|
|
|
|
|
|
fstream infile(path, ios::binary | ios::in); |
|
|
|
fstream infile(path, ios::binary | ios::in); |
|
|
|
stringstream sstream; |
|
|
|
sstream << infile.rdbuf(); |
|
|
|
infile.close(); |
|
|
@ -634,6 +633,10 @@ shared_ptr<logger> 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); |
|
|
|