// // Created by xtkuang on 2025/6/3. // #ifndef LOGGER_H #define LOGGER_H #include #include #include #include "rapidxml/xml_parser.h" using namespace std; inline bool initLogger(const XmlNode &cfg) { google::InitGoogleLogging("cmvr_es"); std::string temp = cfg.getAttrString("dir"); if (temp.empty()) { std::cerr << "Error: no directory specified" << std::endl; return false; } else { // 判断目录是否存在 if (access(temp.c_str(), F_OK) != 0) { // 创建目录 if (mkdir(temp.c_str(), 0755) != 0) { std::cerr << "Failed to create directory: " << temp << std::endl; return false; } } FLAGS_log_dir = temp; } temp = cfg.getAttrDefault("level", "info"); if (temp == "info") { FLAGS_minloglevel = google::INFO; } else if (temp == "warn") { FLAGS_minloglevel = google::WARNING; } else if (temp == "error") { FLAGS_minloglevel = google::ERROR; } else if (temp == "fatal") { FLAGS_minloglevel = google::FATAL; } FLAGS_logbufsecs = cfg.getAttrDefault("bufSize", 5); FLAGS_max_log_size = cfg.getAttrDefault("logSize", 1024); FLAGS_logtostderr = false; FLAGS_alsologtostderr = true; return true; } #endif //LOGGER_H