Browse Source

update

master
zhaohe 2 years ago
parent
commit
87bcbfad6f
  1. 19
      src/iflytop/core/spdlogfactory/logger_factory.cpp

19
src/iflytop/core/spdlogfactory/logger_factory.cpp

@ -258,13 +258,13 @@ static bool mkdirIfNotExist(const string& path) {
class LoggerAndSinks { class LoggerAndSinks {
public: public:
string loggerName;
string loggerName;
set<string> sinkNames; 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 set<shared_ptr<LoggerAndSinks>> s_loggerAndSinks = {};
static void insertLogger(shared_ptr<logger> var_logger) { static void insertLogger(shared_ptr<logger> var_logger) {
@ -300,8 +300,7 @@ static level::level_enum to_level(int value) {
case SPDLOG_LEVEL_CRITICAL: case SPDLOG_LEVEL_CRITICAL:
return level::critical; return level::critical;
default: 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); exit(-1);
break; break;
} }
@ -310,7 +309,7 @@ static level::level_enum to_level(int value) {
// #define GET(type,value,error_msg,...) // #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 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) { static void logger_common_config(logger_t var_logger, json j) {
TRY_GET(int, level, 2); TRY_GET(int, level, 2);
@ -321,7 +320,7 @@ static void logger_common_config(logger_t var_logger, json j) {
if (!sinks.empty()) { if (!sinks.empty()) {
shared_ptr<LoggerAndSinks> las(new LoggerAndSinks()); shared_ptr<LoggerAndSinks> las(new LoggerAndSinks());
las->loggerName = var_logger->name(); las->loggerName = var_logger->name();
las->sinkNames = sinks;
las->sinkNames = sinks;
s_loggerAndSinks.insert(las); s_loggerAndSinks.insert(las);
} }
} }
@ -514,7 +513,7 @@ void core::SpdLoggerFactory::parseSphLogConfig(string path) {
s_loggers.clear(); s_loggers.clear();
s_loggerAndSinks.clear(); s_loggerAndSinks.clear();
fstream infile(path, ios::binary | ios::in);
fstream infile(path, ios::binary | ios::in);
stringstream sstream; stringstream sstream;
sstream << infile.rdbuf(); sstream << infile.rdbuf();
infile.close(); infile.close();
@ -634,6 +633,10 @@ shared_ptr<logger> SpdLoggerFactory::createLogger(string loggerName) {
} }
if (!initializeLogger) { if (!initializeLogger) {
if (default_config.empty()) {
spdlog::warn("you may construct a logger before main!!");
exit(-1);
}
string configFilePath = getConfigFilePath(); string configFilePath = getConfigFilePath();
if (!configFilePath.empty() && exist(configFilePath)) { if (!configFilePath.empty() && exist(configFilePath)) {
parseSphLogConfig(configFilePath); parseSphLogConfig(configFilePath);

Loading…
Cancel
Save