qvvr has bug

This commit is contained in:
lnk
2025-05-20 16:31:12 +08:00
parent 093e8e5dd6
commit 3ad2e7c590
12 changed files with 314 additions and 44 deletions

View File

@@ -28,6 +28,7 @@
extern unsigned int g_node_id;
extern int g_front_seg_index;
extern std::string FRONT_INST;
extern char subdir[128];
extern node_t* g_node;
@@ -77,6 +78,14 @@ bool create_directory_recursive(const std::string& path) {
return true;
}
//////////////////////////////////////////////////////////////////////
std::string extract_logger_id(const std::string& logger_name) {
size_t pos = logger_name.find('.');
if (pos != std::string::npos && pos + 1 < logger_name.size()) {
return logger_name.substr(pos + 1);
}
return ""; // 没有找到 '.' 或 '.' 后为空
}
//////////////////////////////////////////////////////////////////////
TypedLogger::TypedLogger() {}
TypedLogger::TypedLogger(const Logger& l, int t) : logger(l), logtype(t) {}
@@ -126,7 +135,8 @@ protected:
if (level == ERROR_LOG_LEVEL || level == WARN_LOG_LEVEL || g_debug_switch.match(logger_name, level, logtype)) {
std::ostringstream oss;
oss << "{\"processNo\":\"" << intToString(g_front_seg_index)
<< "\",\"id\":\"" << logger_name
<< "\",\"nodeId\":\"" << FRONT_INST
<< "\",\"businessId\":\"" << extract_logger_id(logger_name)
<< "\",\"level\":\"" << level_str
<< "\",\"grade\":\"" << level
<< "\",\"logtype\":\"" << (logtype == LOGTYPE_COM ? "com" : "data")
@@ -354,8 +364,12 @@ void init_loggers() {
logger_map[device_key + ".DATA"] = TypedLogger(device_logger, LOGTYPE_DATA);
char buf[256];
sprintf(buf, "终端id:%s终端级日志初始化完毕", ied_usr->terminal_id);
LOG4CPLUS_DEBUG(logger_map[device_key + ".DATA"].logger, buf);
//sprintf(buf, "终端id:%s终端级日志初始化完毕", ied_usr->terminal_id);
//LOG4CPLUS_DEBUG(logger_map[device_key + ".DATA"].logger, buf);
//format_log_msg(buf,sizeof(buf),"终端id:%s终端级日志初始化完毕", ied_usr->terminal_id);
//log_debug(std::string(device_key + ".DATA").c_str(),buf);
std::string full_key_t = device_key + ".DATA";
DIY_WARNLOG(full_key_t.c_str(),"终端id:%s终端级日志初始化完毕", ied_usr->terminal_id);
// 初始化监测点
// 监测点 logger 名称格式monitor.<mp_id>.COM / .DATA
@@ -371,9 +385,14 @@ void init_loggers() {
logger_map[mon_key.str() + ".COM"] = TypedLogger(mon_logger, LOGTYPE_COM);
logger_map[mon_key.str() + ".DATA"] = TypedLogger(mon_logger, LOGTYPE_DATA);
char buf[256];
sprintf(buf, "监测点id:%s监测点级日志初始化完毕", ied_usr->LD_info[i].mp_id);
LOG4CPLUS_DEBUG(logger_map[mon_key.str() + ".DATA"].logger, buf);
//char buf[256];
//sprintf(buf, "监测点id:%s监测点级日志初始化完毕", ied_usr->LD_info[i].mp_id);
//LOG4CPLUS_DEBUG(logger_map[mon_key.str() + ".DATA"].logger, buf);
//format_log_msg(buf,sizeof(buf),"监测点id:%s监测点级日志初始化完毕", ied_usr->LD_info[i].mp_id);
//log_debug(std::string(mon_key.str() + ".DATA").c_str(),buf);
std::string full_key_m = mon_key.str() + ".DATA";
DIY_WARNLOG(full_key_m.c_str(),"监测点:%s - id:%s监测点级日志初始化完毕", ied_usr->LD_info[i].name,ied_usr->LD_info[i].mp_id);
}
}
@@ -433,7 +452,11 @@ void remove_loggers_by_terminal_id(const char* terminal_id_cstr) {
}
}
#ifdef __cplusplus
extern "C" {
#endif
// 公共函数
void log4_log_with_level(const char* key, const char* msg, int level) {
@@ -459,8 +482,25 @@ extern "C" {
void send_reply_to_kafka_c(const char* guid, const char* step, const char* result) {
send_reply_to_kafka(std::string(guid), std::string(step), std::string(result));
}
//标准化日志接口
void format_log_msg(char* buf, size_t buf_size, const char* fmt, ...) {
// 写入时间
time_t now = time(NULL);
struct tm tm_info;
localtime_r(&now, &tm_info);
strftime(buf, buf_size, "%Y-%m-%d %H:%M:%S ", &tm_info); // 时间+空格
// 处理可变参数并写入剩余内容
va_list args;
va_start(args, fmt);
vsnprintf(buf + strlen(buf), buf_size - strlen(buf), fmt, args);
va_end(args);
}
#ifdef __cplusplus
}
#endif
/*