|
|
@@ -11,7 +11,6 @@
|
|
|
#include "baseFun.h"
|
|
|
#include <chrono>
|
|
|
#include <ctime>
|
|
|
-#include <iomanip>
|
|
|
|
|
|
/**
|
|
|
* adjust buffer, this function will ensure tag's buffer size >= tag->now_buffer_len + new_len
|
|
|
@@ -222,10 +221,20 @@ int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_i
|
|
|
auto cur_now = system_clock::now();
|
|
|
auto ms = duration_cast<milliseconds>(cur_now.time_since_epoch()) % 1000;
|
|
|
auto timer = system_clock::to_time_t(cur_now);
|
|
|
+
|
|
|
+ std::string ms_str = std::to_string(ms.count());
|
|
|
+
|
|
|
+ // 手动补齐毫秒到3位
|
|
|
+ while (ms_str.length() < 3) {
|
|
|
+ ms_str = "0" + ms_str; // 或者 ms_str.insert(0, "0");
|
|
|
+ }
|
|
|
+
|
|
|
+ char buffer[20]; // 用于存储格式化后的日期和时间
|
|
|
+ std::tm* local_time = std::localtime(&timer);
|
|
|
+ std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", local_time); // 使用 std::strftime
|
|
|
|
|
|
std::ostringstream oss;
|
|
|
- oss << std::put_time(std::localtime(&timer), "%Y-%m-%d %H:%M:%S")
|
|
|
- << '.' << std::setfill('0') << std::setw(3) << ms.count();
|
|
|
+ oss << buffer << '.' << ms_str;
|
|
|
|
|
|
|
|
|
if (bder->grp->n_logs >= MAX_LOG_COUNT) {
|
|
|
@@ -390,7 +399,7 @@ int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_i
|
|
|
|
|
|
|
|
|
|
|
|
- cJSON_AddItemToObject(united_content, "ts", cJSON_CreateString(unitedNowTime));
|
|
|
+ cJSON_AddItemToObject(united_content, "ts", cJSON_CreateString(oss.str().c_str()));
|
|
|
|
|
|
cJSON_AddItemToObject(simpleLog_content, "content", skyeye_content);
|
|
|
cJSON_AddItemToObject(united_content, "log", simpleLog_content);
|
|
|
@@ -708,7 +717,7 @@ void add_log_terminal_sn_other(log_group_builder* bder, char* sn, char* clientIP
|
|
|
cJSON_AddItemToObject(content, "ClientIP", cJSON_CreateString(clientIP));
|
|
|
changed = 1;
|
|
|
}
|
|
|
- if(bder->grp->logs[i].uuid == STR_LOG_SEND_DIRTY && cJSON_HasObjectItem(content, "ResultMsg"))//dirty log, need encrypt ResultMsg
|
|
|
+ if(bder->grp->logs[i].uuid == std::string(STR_LOG_SEND_DIRTY) && cJSON_HasObjectItem(content, "ResultMsg"))//dirty log, need encrypt ResultMsg
|
|
|
{
|
|
|
cJSON* resultMsg = cJSON_GetObjectItem(content, "ResultMsg");
|
|
|
std::string base64_str = base64_encode(resultMsg->valuestring);
|