54 lines
1.5 KiB
C
54 lines
1.5 KiB
C
|
|
//
|
||
|
|
// Created by xtkuang on 2025/6/3.
|
||
|
|
//
|
||
|
|
|
||
|
|
#ifndef LOGGER_H
|
||
|
|
#define LOGGER_H
|
||
|
|
|
||
|
|
#include <sys/stat.h>
|
||
|
|
#include <unistd.h>
|
||
|
|
#include <glog/logging.h>
|
||
|
|
#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
|