modify log4 function and add data trace function
This commit is contained in:
@@ -1167,9 +1167,13 @@ std::string prepare_update(const std::string& code_str, const terminal& json_dat
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<processNo>" << json_data.processNo << "</processNo>" << std::endl;
|
||||
|
||||
//lnk20250305
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<devKey>" << json_data.dev_key << "</devKey>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<loglevel>" << json_data.log_level << "</loglevel>" << std::endl;
|
||||
|
||||
// monitorData 部分
|
||||
for (int i = 0; json_data.line[i].monitor_id[0] != '\0'; i++) {
|
||||
const monitor& monitor = json_data.line[i];
|
||||
@@ -1202,6 +1206,9 @@ std::string prepare_update(const std::string& code_str, const terminal& json_dat
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<status>" << monitor.status << "</status>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<loglevel>" << monitor.log_level << "</loglevel>" << std::endl;
|
||||
|
||||
indentLevel--;
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "</monitorData>" << std::endl;
|
||||
@@ -1376,7 +1383,7 @@ int parse_log(const std::string& json_str) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
std::string logtype = logtypestr->valuestring;
|
||||
int logtype = logtypestr->valueint;
|
||||
|
||||
// 获取 frontType 字段
|
||||
cJSON* frontTypestr = cJSON_GetObjectItem(messageBody, "frontType");
|
||||
@@ -1413,13 +1420,16 @@ int parse_log(const std::string& json_str) {
|
||||
//校验数据
|
||||
if((level == "terminal" || level == "measurepoint") &&
|
||||
(grade == "NORMAL" || grade == "DEBUG") &&
|
||||
(logtype == "com" || logtype == "data") &&
|
||||
(!id.empty() && !is_blank(id))){
|
||||
|
||||
//开启开关
|
||||
//开启日志临时开关
|
||||
process_log_command(id, level, grade, logtype);
|
||||
|
||||
}
|
||||
else if((level == "measurepoint") && (grade == "TRACE") && (!id.empty() && !is_blank(id))){ //数据追踪
|
||||
//打开监测点数据追踪开关
|
||||
process_trace_command(id,5); //5表示追踪次数
|
||||
}
|
||||
else{
|
||||
std::cout << "type doesnt match" <<std::endl;
|
||||
//记录warm
|
||||
@@ -1611,6 +1621,25 @@ int parse_control(const std::string& json_str, const std::string& output_dir) {
|
||||
else
|
||||
std::strncpy(json_data.timestamp, "N/A", sizeof(json_data.timestamp) - 1);
|
||||
|
||||
|
||||
//添加loglevel字段
|
||||
cJSON* loglevel = cJSON_GetObjectItem(item, "loglevel"); // log_level
|
||||
int tmp_level = -1;
|
||||
// 先读取 loglevel
|
||||
if (loglevel && loglevel->type == cJSON_Number) {
|
||||
tmp_level = loglevel->valueint;
|
||||
}
|
||||
else if (loglevel && loglevel->type == cJSON_String) {
|
||||
tmp_level = atoi(loglevel->valuestring);
|
||||
}
|
||||
// 判断是否合法 (0~3)
|
||||
if (tmp_level >= 0 && tmp_level <= 3) {
|
||||
json_data.log_level = tmp_level;
|
||||
} else {
|
||||
json_data.log_level = 1; // 默认日志级别
|
||||
}
|
||||
printf("terminal log_level: %d\n", json_data.log_level);
|
||||
|
||||
// monitorData 解析,填充到 line 数组中
|
||||
cJSON* monitorData = cJSON_GetObjectItem(item, "monitorData");
|
||||
if (monitorData != nullptr && monitorData->type == cJSON_Array) {
|
||||
@@ -1626,6 +1655,27 @@ int parse_control(const std::string& json_str, const std::string& output_dir) {
|
||||
else
|
||||
std::strncpy(monitor_data.monitor_id, "N/A", sizeof(monitor_data.monitor_id) - 1);
|
||||
|
||||
//添加loglevel字段
|
||||
cJSON* loglevel = cJSON_GetObjectItem(monitor_item, "loglevel"); // log_level
|
||||
int tmp_level = -1;
|
||||
// 先尝试读取 loglevel
|
||||
if (loglevel && loglevel->type == cJSON_Number) {
|
||||
tmp_level = loglevel->valueint;
|
||||
}
|
||||
else if (loglevel && loglevel->type == cJSON_String) {
|
||||
tmp_level = atoi(loglevel->valuestring);
|
||||
}
|
||||
// 判断是否合法 (0~3)
|
||||
if (tmp_level >= 0 && tmp_level <= 3) {
|
||||
monitor_data.log_level = tmp_level;
|
||||
}
|
||||
else if (json_data.log_level >= 0 && json_data.log_level <= 3) { // 继承 terminal loglevel
|
||||
monitor_data.log_level = json_data.log_level;
|
||||
}
|
||||
else {
|
||||
monitor_data.log_level = 1; // 默认 warn
|
||||
}
|
||||
|
||||
cJSON* monitor_name = cJSON_GetObjectItem(monitor_item, "name"); // monitor_name
|
||||
if (monitor_name && monitor_name->type == cJSON_String)
|
||||
std::strncpy(monitor_data.monitor_name, monitor_name->valuestring, sizeof(monitor_data.monitor_name) - 1);
|
||||
|
||||
Reference in New Issue
Block a user