diff --git a/pkg/src/cms/cbb/cbb_disklock.c b/pkg/src/cms/cbb/cbb_disklock.c index f7ad6145014766abcd37e51860ddd3a400ec6b5b..094a152707706baaf9ea92218d98fefc00007da5 100644 --- a/pkg/src/cms/cbb/cbb_disklock.c +++ b/pkg/src/cms/cbb/cbb_disklock.c @@ -31,7 +31,7 @@ #include "securec.h" #include "cm_defs.h" #include "cbb_disklock.h" -#include "cbb_test_log.h" +#include "cm_log.h" #define CM_BLOCK_SIZE (512) #define CM_ALIGN_SIZE (8192) @@ -99,28 +99,28 @@ static inline unsigned long long cm_dl_now_ns() unsigned int cm_dl_alloc(const char *path, unsigned long long offset, unsigned long long inst_id) { if (path == NULL) { - LOG("DL:invalid path[NULL]."); + CBB_LOG("[disk lock]invalid path[NULL]."); return CM_INVALID_LOCK_ID; } size_t len = strlen(path); if (len == 0 || len > CM_MAX_PATH_SIZE - 1) { - LOG("DL:invalid path length."); + CBB_LOG("[disk lock]invalid path length."); return CM_INVALID_LOCK_ID; } if ((offset & (CM_ALIGN_SIZE - 1)) != 0) { - LOG("DL:invalid offset:not %d aligned.", CM_ALIGN_SIZE); + CBB_LOG("[disk lock]invalid offset:not %d aligned.", CM_ALIGN_SIZE); return CM_INVALID_LOCK_ID; } if (inst_id >= CM_MAX_INST_COUNT) { - LOG("DL:invalid inst_id[%lld].", inst_id); + CBB_LOG("[disk lock]invalid inst_id[%lld].", inst_id); return CM_INVALID_LOCK_ID; } if (pthread_mutex_lock(&g_dl_ctx.lock) != 0) { - LOG("DL:pthread_mutex_lock failed."); + CBB_LOG("[disk lock]pthread_mutex_lock failed."); return CM_INVALID_LOCK_ID; } @@ -133,12 +133,12 @@ unsigned int cm_dl_alloc(const char *path, unsigned long long offset, unsigned l } if (pthread_mutex_unlock(&g_dl_ctx.lock) != 0) { - LOG("DL:pthread_mutex_unlock failed."); + CBB_LOG("[disk lock]pthread_mutex_unlock failed."); return CM_INVALID_LOCK_ID; } if (id >= CM_MAX_DISKLOCK_COUNT) { - LOG("DL:insufficient lock area."); + CBB_LOG("[disk lock]insufficient lock area."); return CM_INVALID_LOCK_ID; } @@ -146,7 +146,7 @@ unsigned int cm_dl_alloc(const char *path, unsigned long long offset, unsigned l if (fd <= 0) { (void)close(fd); g_dl_ctx.lock_info[id].fd = 0; - LOG("DL:open path failed:%d,%s.", errno, strerror(errno)); + CBB_LOG("[disk lock]open path failed:%d,%s.", errno, strerror(errno)); return CM_INVALID_LOCK_ID; } @@ -154,7 +154,7 @@ unsigned int cm_dl_alloc(const char *path, unsigned long long offset, unsigned l if (size < (off_t)offset + CM_LOCK_FULL_SIZE) { (void)close(fd); g_dl_ctx.lock_info[id].fd = 0; - LOG("DL:insufficient path size:%lld,%s.", size, strerror(errno)); + CBB_LOG("[disk lock]insufficient path size:%lld,%s.", size, strerror(errno)); return CM_INVALID_LOCK_ID; } @@ -162,7 +162,7 @@ unsigned int cm_dl_alloc(const char *path, unsigned long long offset, unsigned l if (lock_stat == NULL) { (void)close(fd); g_dl_ctx.lock_info[id].fd = 0; - LOG("DL:insufficient memory."); + CBB_LOG("[disk lock]insufficient memory."); return CM_INVALID_LOCK_ID; } @@ -171,7 +171,7 @@ unsigned int cm_dl_alloc(const char *path, unsigned long long offset, unsigned l (void)close(fd); g_dl_ctx.lock_info[id].fd = 0; free(lock_stat); - LOG("DL:strcpy_sp failed."); + CBB_LOG("[disk lock]strcpy_sp failed."); return CM_INVALID_LOCK_ID; } @@ -182,7 +182,7 @@ unsigned int cm_dl_alloc(const char *path, unsigned long long offset, unsigned l g_dl_ctx.lock_info[id].inst_id = inst_id; g_dl_ctx.lock_info[id].type = LT_NORMAL; - LOG("DL:cm_dl_alloc succeed:%s:%lld.", path, offset); + CBB_LOG("[disk lock]cm_dl_alloc succeed:%s:%lld.", path, offset); return id; } @@ -190,17 +190,17 @@ unsigned int cm_dl_alloc(const char *path, unsigned long long offset, unsigned l int cm_dl_dealloc(unsigned int lock_id) { if (lock_id >= CM_MAX_DISKLOCK_COUNT) { - LOG("DL:invalid lock_id:%u.", lock_id); + CBB_LOG("[disk lock]invalid lock_id:%u.", lock_id); return CM_DL_ERR_INVALID_LOCK_ID; } cm_dl_t *lock_info = &g_dl_ctx.lock_info[lock_id]; if (lock_info->fd <= 0) { - LOG("DL:invalid lock not ready,lock_id:%u.", lock_id); + CBB_LOG("[disk lock]invalid lock not ready,lock_id:%u.", lock_id); return CM_DL_ERR_INVALID_LOCK_ID; } - LOG("DL:cm_dl_dealloc:%s:%lld.", lock_info->path, lock_info->offset); + CBB_LOG("[disk lock]cm_dl_dealloc:%s:%lld.", lock_info->path, lock_info->offset); if (lock_info->lock_stat != NULL) { free(lock_info->lock_stat); @@ -225,7 +225,7 @@ static int cm_dl_check_lock(unsigned int lock_id, checkperiod_t checkperiod) ssize_t size = pread(lock_info->fd, lock_stat, CM_LOCK_FULL_SIZE, (off_t)lock_info->offset); if (size != CM_LOCK_FULL_SIZE) { - LOG("DL:read path failed:%d,%s.", errno, strerror(errno)); + CBB_LOG("[disk lock]read path failed:%d,%s.", errno, strerror(errno)); return CM_DL_ERR_IO; } @@ -246,30 +246,30 @@ static int cm_dl_check_lock(unsigned int lock_id, checkperiod_t checkperiod) if (lock_info->type == LT_NORMAL) { return CM_DL_ERR_OCCUPIED; } else if (lock_info->type == LT_LEASE) { - LOG("DL:check lease:%d.", checkperiod); + CBB_LOG("[disk lock]check lease:%d.", checkperiod); if (checkperiod == CP_CONFIRM) { - LOG("DL:return CM_DL_ERR_OCCUPIED lease:%d.", checkperiod); + CBB_LOG("[disk lock]return CM_DL_ERR_OCCUPIED lease:%d.", checkperiod); return CM_DL_ERR_OCCUPIED; } dl_hb_t *hb = &lock_info->hb[inst_id]; - LOG("DL:lock_time=%lld,peer_lock_time=%lld.", lock_stat->lock_time, hb->peer_lock_time); + CBB_LOG("[disk lock]lock_time=%lld,peer_lock_time=%lld.", lock_stat->lock_time, hb->peer_lock_time); if (lock_stat->lock_time != hb->peer_lock_time) { hb->peer_lock_time = lock_stat->lock_time; hb->lock_hb_time = cm_dl_now_ns(); - LOG("DL:update hb:peer_lock_time=%lld,lock_hb_time=%lld", hb->peer_lock_time, hb->lock_hb_time); + CBB_LOG("[disk lock]update hb:peer_lock_time=%lld,lock_hb_time=%lld", hb->peer_lock_time, hb->lock_hb_time); } - LOG("DL:now=%lld,lock_hb_time=%lld,lease_ns=%lld.", + CBB_LOG("[disk lock]now=%lld,lock_hb_time=%lld,lease_ns=%lld.", cm_dl_now_ns(), hb->lock_hb_time, lock_info->lease_sec * NANOSECS_PER_SECOND_LL); if (cm_dl_now_ns() - hb->lock_hb_time > lock_info->lease_sec * NANOSECS_PER_SECOND_LL) { - LOG("DL:release lock,inst_id=%llu", inst_id); + CBB_LOG("[disk lock]release lock,inst_id=%llu", inst_id); cm_dl_unlock_inner(lock_id, inst_id); } else { - LOG("DL:CM_DL_ERR_OCCUPIED"); + CBB_LOG("[disk lock]CM_DL_ERR_OCCUPIED"); return CM_DL_ERR_OCCUPIED; } } @@ -299,7 +299,7 @@ static int cm_dl_lock_inner(unsigned int lock_id) ssize_t size = pwrite( lock_info->fd, lock_stat, CM_BLOCK_SIZE, (off_t)(lock_info->offset + CM_BLOCK_SIZE * (lock_info->inst_id + 1))); if (size != CM_BLOCK_SIZE) { - LOG("DL:write path failed:size=%lu,%d,%s.", size, errno, strerror(errno)); + CBB_LOG("[disk lock]write path failed:size=%lu,%d,%s.", size, errno, strerror(errno)); return CM_DL_ERR_IO; } @@ -314,7 +314,7 @@ static int cm_dl_lock_inner(unsigned int lock_id) lock_info->fd, lock_stat, CM_BLOCK_SIZE, (off_t)(lock_info->offset + CM_BLOCK_SIZE * (lock_info->inst_id + 1))); if (size != CM_BLOCK_SIZE) { (void)cm_dl_unlock_inner(lock_id, lock_info->inst_id); - LOG("DL:write path failed:size=%lu,%d,%s.", size, errno, strerror(errno)); + CBB_LOG("[disk lock]write path failed:size=%lu,%d,%s.", size, errno, strerror(errno)); return CM_DL_ERR_IO; } @@ -326,13 +326,13 @@ int cm_dl_lock(unsigned int lock_id, int timeout_ms) int ret; if (lock_id >= CM_MAX_DISKLOCK_COUNT) { - LOG("DL:invalid lock_id:%u.", lock_id); + CBB_LOG("[disk lock]invalid lock_id:%u.", lock_id); return CM_DL_ERR_INVALID_LOCK_ID; } cm_dl_t *lock_info = &g_dl_ctx.lock_info[lock_id]; if (lock_info->fd <= 0) { - LOG("DL:invalid lock not ready,lock_id:%u.", lock_id); + CBB_LOG("[disk lock]invalid lock not ready,lock_id:%u.", lock_id); return CM_DL_ERR_INVALID_LOCK_ID; } @@ -354,7 +354,7 @@ int cm_dl_lock(unsigned int lock_id, int timeout_ms) ((start + now) & (CM_MAX_INST_COUNT - 1)) * (CM_MAX_RETRY_WAIT_TIME_MS / CM_MAX_INST_COUNT) + lock_info->inst_id; cm_sleep(random_time); - LOG("DL:wait for retry:%lldms.", random_time); + CBB_LOG("[disk lock]wait for retry:%lldms.", random_time); } while (CT_TRUE); return ret; @@ -363,7 +363,7 @@ int cm_dl_lock(unsigned int lock_id, int timeout_ms) static int cm_dl_unlock_inner(unsigned int lock_id, unsigned long long inst_id) { if (inst_id >= CM_MAX_INST_COUNT) { - LOG("DL:invalid inst_id[%lld].", inst_id); + CBB_LOG("[disk lock]invalid inst_id[%lld].", inst_id); return CM_DL_ERR_INVALID_PARAM; } @@ -379,7 +379,7 @@ static int cm_dl_unlock_inner(unsigned int lock_id, unsigned long long inst_id) ssize_t size = pwrite(lock_info->fd, lock_stat, CM_BLOCK_SIZE, (off_t)(lock_info->offset + CM_BLOCK_SIZE * (inst_id + 1))); if (size != CM_BLOCK_SIZE) { - LOG("DL:write path failed:%d,%s.", errno, strerror(errno)); + CBB_LOG("[disk lock]write path failed:%d,%s.", errno, strerror(errno)); return CM_DL_ERR_IO; } @@ -389,13 +389,13 @@ static int cm_dl_unlock_inner(unsigned int lock_id, unsigned long long inst_id) int cm_dl_unlock(unsigned int lock_id) { if (lock_id >= CM_MAX_DISKLOCK_COUNT) { - LOG("DL:invalid lock_id:%u.", lock_id); + CBB_LOG("[disk lock]invalid lock_id:%u.", lock_id); return CM_DL_ERR_INVALID_LOCK_ID; } cm_dl_t *lock_info = &g_dl_ctx.lock_info[lock_id]; if (lock_info->fd <= 0) { - LOG("DL:invalid lock not ready,lock_id:%u.", lock_id); + CBB_LOG("[disk lock]invalid lock not ready,lock_id:%u.", lock_id); return CM_DL_ERR_INVALID_LOCK_ID; } @@ -405,13 +405,13 @@ int cm_dl_unlock(unsigned int lock_id) int cm_dl_clean(unsigned int lock_id, unsigned long long inst_id) { if (lock_id >= CM_MAX_DISKLOCK_COUNT) { - LOG("DL:invalid lock_id:%u.", lock_id); + CBB_LOG("[disk lock]invalid lock_id:%u.", lock_id); return CM_DL_ERR_INVALID_LOCK_ID; } cm_dl_t *lock_info = &g_dl_ctx.lock_info[lock_id]; if (lock_info->fd <= 0) { - LOG("DL:invalid lock not ready,lock_id:%u.", lock_id); + CBB_LOG("[disk lock]invalid lock not ready,lock_id:%u.", lock_id); return CM_DL_ERR_INVALID_LOCK_ID; } @@ -421,12 +421,12 @@ int cm_dl_clean(unsigned int lock_id, unsigned long long inst_id) static int cm_dl_getlockstat(unsigned int lock_id, dl_stat_t **lock_stat) { if (lock_id >= CM_MAX_DISKLOCK_COUNT) { - LOG("DL:invalid lock_id:%u.", lock_id); + CBB_LOG("[disk lock]invalid lock_id:%u.", lock_id); return CM_DL_ERR_INVALID_LOCK_ID; } if (lock_stat == NULL) { - LOG("DL:invalid lock_stat."); + CBB_LOG("[disk lock]invalid lock_stat."); return CM_DL_ERR_INVALID_PARAM; } @@ -435,7 +435,7 @@ static int cm_dl_getlockstat(unsigned int lock_id, dl_stat_t **lock_stat) ssize_t size = pread(lock_info->fd, lock_stat_x, CM_LOCK_FULL_SIZE, (off_t)lock_info->offset); if(size != CM_LOCK_FULL_SIZE) { - LOG("DL:read path failed:%d,%s.", errno, strerror(errno)); + CBB_LOG("[disk lock]read path failed:%d,%s.", errno, strerror(errno)); return CM_DL_ERR_IO; } @@ -445,7 +445,7 @@ static int cm_dl_getlockstat(unsigned int lock_id, dl_stat_t **lock_stat) if (*lock_stat == NULL) { *lock_stat = &lock_stat_x[x_inst_id + 1]; } else { - LOG("DL:This lock hash more than one owner:inst1=%lld,inst2=%lld.", (*lock_stat)->inst_id, x_inst_id); + CBB_LOG("[disk lock]This lock hash more than one owner:inst1=%lld,inst2=%lld.", (*lock_stat)->inst_id, x_inst_id); return CM_DL_ERR_INVALID_LOCKSTAT; } } @@ -499,7 +499,7 @@ unsigned int cm_dl_alloc_lease( dl_hb_t *hb = (dl_hb_t *)malloc(sizeof(dl_hb_t) * CM_MAX_INST_COUNT); if (hb == NULL) { cm_dl_dealloc(lock_id); - LOG("DL:insufficient memory."); + CBB_LOG("[disk lock]insufficient memory."); return CM_INVALID_LOCK_ID; } @@ -507,7 +507,7 @@ unsigned int cm_dl_alloc_lease( if (errcode != EOK) { cm_dl_dealloc(lock_id); free(hb); - LOG("DL:memset_sp failed."); + CBB_LOG("[disk lock]memset_sp failed."); return CM_INVALID_LOCK_ID; } diff --git a/pkg/src/cms/cbb/cbb_test_log.c b/pkg/src/cms/cbb/cbb_test_log.c deleted file mode 100644 index b1e9521d3562538ec28980d7939dcb750707bb28..0000000000000000000000000000000000000000 --- a/pkg/src/cms/cbb/cbb_test_log.c +++ /dev/null @@ -1,69 +0,0 @@ -/* ------------------------------------------------------------------------- - * This file is part of the Cantian project. - * Copyright (c) 2024 Huawei Technologies Co.,Ltd. - * - * Cantian is licensed under Mulan PSL v2. - * You can use this software according to the terms and conditions of the Mulan PSL v2. - * You may obtain a copy of Mulan PSL v2 at: - * - * http://license.coscl.org.cn/MulanPSL2 - * - * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, - * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, - * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. - * See the Mulan PSL v2 for more details. - * ------------------------------------------------------------------------- - * - * cms_test_log.c - * - * - * IDENTIFICATION - * src/cms/cbb/cbb_test_log.c - * - * ------------------------------------------------------------------------- - */ -#include -#include -#include -#include -#include "cbb_test_log.h" - -#ifdef TEST_LOG_ENABLED -#define LOG_FILE "/opt/cantian/dss/test.log" -static pthread_mutex_t log_mutex = PTHREAD_MUTEX_INITIALIZER; - -void get_current_time(char *buffer, size_t size) { - time_t raw_time; - struct tm *time_info; - - time(&raw_time); - time_info = localtime(&raw_time); - strftime(buffer, size, "%Y-%m-%d %H:%M:%S", time_info); -} -#endif - -void write_log_to_file(const char *file, int line, const char *format, ...) { -#ifdef TEST_LOG_ENABLED - pthread_mutex_lock(&log_mutex); - - FILE *log_file = fopen(LOG_FILE, "a"); - if (log_file != NULL) { - char time_str[20]; - get_current_time(time_str, sizeof(time_str)); - - fprintf(log_file, "[%s] (%s:%d) ", time_str, file, line); - - va_list args; - va_start(args, format); - vfprintf(log_file, format, args); - va_end(args); - - fprintf(log_file, "\n"); - fclose(log_file); - } else { - fprintf(stderr, "Error opening log file: %s\n", LOG_FILE); - } - - pthread_mutex_unlock(&log_mutex); -#endif -} \ No newline at end of file diff --git a/pkg/src/cms/cbb/cbb_test_log.h b/pkg/src/cms/cbb/cbb_test_log.h deleted file mode 100644 index 4ef058dbca079fb1daa30d733d1ca15c559981c4..0000000000000000000000000000000000000000 --- a/pkg/src/cms/cbb/cbb_test_log.h +++ /dev/null @@ -1,35 +0,0 @@ -/* ------------------------------------------------------------------------- - * This file is part of the Cantian project. - * Copyright (c) 2024 Huawei Technologies Co.,Ltd. - * - * Cantian is licensed under Mulan PSL v2. - * You can use this software according to the terms and conditions of the Mulan PSL v2. - * You may obtain a copy of Mulan PSL v2 at: - * - * http://license.coscl.org.cn/MulanPSL2 - * - * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, - * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, - * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. - * See the Mulan PSL v2 for more details. - * ------------------------------------------------------------------------- - * - * cms_test_log.h - * - * - * IDENTIFICATION - * src/cms/cbb/cbb_test_log.h - * - * ------------------------------------------------------------------------- - */ -#ifndef __CBB_TEST_LOG_H__ -#define __CBB_TEST_LOG_H__ - -#define LOG(format, ...) write_log_to_file(__FILE__, __LINE__, format, ##__VA_ARGS__) - -#ifdef TEST_LOG_ENABLED -void get_current_time(char *buffer, size_t size); -#endif -void write_log_to_file(const char *file, int line, const char *format, ...); - -#endif \ No newline at end of file diff --git a/pkg/src/cms/cbb/cms_cbb.c b/pkg/src/cms/cbb/cms_cbb.c index 405e660e5b824eeef6caba42c1a2742eab59bbf1..97e739472a15ca560f20da007b15909f1d807239 100644 --- a/pkg/src/cms/cbb/cms_cbb.c +++ b/pkg/src/cms/cbb/cms_cbb.c @@ -26,7 +26,7 @@ #include "cm_defs.h" #include "cms_cbb.h" #include "cbb_disklock.h" -#include "cbb_test_log.h" +#include "cm_log.h" #define CM_MAX_RES_NAME_LENGTH 32 #define CM_MAX_INST_COUNTS 64 @@ -44,11 +44,11 @@ int CmInit(unsigned int instance_id, const char *res_name, cm_notify_func_t func { int ret = cm_dl_alloc(DSS_RES_DATA_LOCK_PATH, DSS_RES_DATA_LOCK_POS, instance_id); if (ret == CM_INVALID_LOCK_ID) { - LOG("cm_dl_alloc failed with ret: %d", ret); + CBB_LOG("cm_dl_alloc failed with ret: %d", ret); return CT_ERROR; } g_lock_id = ret; - LOG("CmInit completed, g_lock_id: %u", g_lock_id); + CBB_LOG("CmInit completed, g_lock_id: %u", g_lock_id); return CT_SUCCESS; } @@ -61,14 +61,14 @@ status_t GetDssStat(dss_res_data *dss_res) int node_id, is_work_member; fp = popen(cmd_cms_stat, "r"); if (fp == NULL) { - LOG("Fail to get dss stat."); + CBB_LOG("Fail to get dss stat."); return CT_ERROR; } dss_res->inst_count = 0; while (fgets(line, sizeof(line), fp) != NULL) { int result = sscanf(line, "%d %s %d", &node_id, status, &is_work_member); if (result == SSCANF_ERROR) { - LOG("Fail to scan dss stat."); + CBB_LOG("Fail to scan dss stat."); return CT_ERROR; } dss_res->node[dss_res->inst_count].is_work_member = is_work_member; @@ -91,7 +91,7 @@ char* CmGetResStats(void) { dss_res_data *dss_res = (dss_res_data*)malloc(sizeof(dss_res_data)); if (dss_res == NULL) { - LOG("Here is no dss node."); + CBB_LOG("Here is no dss node."); return NULL; } memset_s(dss_res, sizeof(dss_res_data), 0, sizeof(dss_res_data)); @@ -106,7 +106,7 @@ char* CmGetResStats(void) "\"inst_count\": %u," "\"inst_status\": [", dss_res->inst_count); if (result == SSPRINTF_ERROR) { - LOG("Fail to use snprintf_s on json_data."); + CBB_LOG("Fail to use snprintf_s on json_data."); free(dss_res); return NULL; } @@ -119,20 +119,20 @@ char* CmGetResStats(void) "\"status\": %u" "}",i , i, dss_res->node[i].is_work_member, dss_res->node[i].status); if (result == SSPRINTF_ERROR) { - LOG("Fail to use snprintf_s on node_data."); + CBB_LOG("Fail to use snprintf_s on node_data."); free(dss_res); return NULL; } errno_t error = strcat_s(json_data, JSON_DATA_MAX_LEN, node_data); if (error != STRCAT_SUCCESS) { - LOG("Fail to use strcat_s on json_data."); + CBB_LOG("Fail to use strcat_s on json_data."); free(dss_res); return NULL; } if (i < dss_res->inst_count - 1) { errno_t error = strcat_s(json_data, JSON_DATA_MAX_LEN, ","); if (error != STRCAT_SUCCESS) { - LOG("Fail to use strcat_s on json_data."); + CBB_LOG("Fail to use strcat_s on json_data."); free(dss_res); return NULL; } @@ -140,7 +140,7 @@ char* CmGetResStats(void) } errno_t error = strcat_s(json_data, JSON_DATA_MAX_LEN, "]}"); if (error != STRCAT_SUCCESS) { - LOG("Fail to use strcat_s on json_data."); + CBB_LOG("Fail to use strcat_s on json_data."); free(dss_res); return NULL; } @@ -148,13 +148,13 @@ char* CmGetResStats(void) char *malloc_result = (char *)malloc(strlen(json_data) + 1); if (malloc_result == NULL) { - LOG("Memory allocation failed in CmGetResStats"); + CBB_LOG("Memory allocation failed in CmGetResStats"); return NULL; } memset_s(malloc_result, strlen(json_data) + 1, 0, strlen(json_data) + 1); strcpy(malloc_result, json_data); - LOG("CmGetResStats completed, JSON data allocated."); + CBB_LOG("CmGetResStats completed, JSON data allocated."); return malloc_result; } @@ -163,7 +163,7 @@ void CmFreeResStats(char *res_stat) if (res_stat != NULL) { free(res_stat); res_stat = NULL; - LOG("res_stat memory freed."); + CBB_LOG("res_stat memory freed."); } } @@ -171,19 +171,19 @@ int CmResLock(const char *lock_name) { int ret = cm_dl_lock(g_lock_id, 1000); if (ret == 0) { - LOG("cm_dl_lock succeeded"); + CBB_LOG("cm_dl_lock succeeded"); return CT_SUCCESS; } unsigned long long lockTime = 0; ret = cm_dl_getlocktime(g_lock_id, &lockTime); if (ret != 0) { - LOG("cm_dl_getlocktime failed with ret: %d", ret); + CBB_LOG("cm_dl_getlocktime failed with ret: %d", ret); return CT_ERROR; } int result = (int)(lockTime % MAX_EXIT_STATUS); - LOG("CmResLock completed, lockTime: %llu, result: %d", lockTime, result); + CBB_LOG("CmResLock completed, lockTime: %llu, result: %d", lockTime, result); return result == CT_SUCCESS ? CT_ERROR : result; } @@ -193,30 +193,30 @@ int CmResUnlock(const char *lock_name) int ret = cm_dl_unlock(g_lock_id); if (ret != 0) { - LOG("CmResUnlock failed with ret: %d", ret); + CBB_LOG("CmResUnlock failed with ret: %d", ret); return CT_ERROR; } - LOG("CmResUnlock succeeded"); + CBB_LOG("CmResUnlock succeeded"); return CT_SUCCESS; } int CmResGetLockOwner(const char *lock_name, unsigned int *inst_id) { if (inst_id == NULL) { - LOG("CmResGetLockOwner failed due to NULL inst_id pointer"); + CBB_LOG("CmResGetLockOwner failed due to NULL inst_id pointer"); return CT_ERROR; } unsigned long long temp_inst_id; int ret = cm_dl_getowner(g_lock_id, &temp_inst_id); if (ret != 0) { - LOG("cm_dl_getowner failed with ret: %d", ret); + CBB_LOG("cm_dl_getowner failed with ret: %d", ret); return ret; } *inst_id = (unsigned int)temp_inst_id; - LOG("CmResGetLockOwner completed, inst_id: %u", *inst_id); + CBB_LOG("CmResGetLockOwner completed, inst_id: %u", *inst_id); return CT_SUCCESS; } @@ -225,10 +225,10 @@ int CmResTransLock(const char *lock_name, unsigned int inst_id) { int ret = cm_dl_unlock(g_lock_id); if (ret != 0) { - LOG("CmResTransLock failed to unlock, ret: %d", ret); + CBB_LOG("CmResTransLock failed to unlock, ret: %d", ret); return CT_ERROR; } - LOG("CmResTransLock completed successfully"); + CBB_LOG("CmResTransLock completed successfully"); return CT_SUCCESS; } \ No newline at end of file diff --git a/pkg/src/common/cm_log.c b/pkg/src/common/cm_log.c index 3c84e5c9242b54e8c1c22a7fae91e1850e112f91..bc1c20fa45c07cfd425672596ee0f9800a6e1b8c 100644 --- a/pkg/src/common/cm_log.c +++ b/pkg/src/common/cm_log.c @@ -1460,3 +1460,38 @@ uint64_t cm_print_memory_usage(void) return 0; #endif } + +static pthread_mutex_t log_mutex = PTHREAD_MUTEX_INITIALIZER; + +void get_current_time(char *buffer, size_t size) { + time_t raw_time; + struct tm *time_info; + + time(&raw_time); + time_info = localtime(&raw_time); + strftime(buffer, size, "%Y-%m-%d %H:%M:%S", time_info); +} + +void write_log_to_file(const char *file, int line, const char *format, ...) { + pthread_mutex_lock(&log_mutex); + + FILE *log_file = fopen(CBB_LOG_FILE, "a"); + if (log_file != NULL) { + char time_str[20]; + get_current_time(time_str, sizeof(time_str)); + + fprintf(log_file, "[%s] (%s:%d) ", time_str, file, line); + + va_list args; + va_start(args, format); + vfprintf(log_file, format, args); + va_end(args); + + fprintf(log_file, "\n"); + fclose(log_file); + } else { + fprintf(stderr, "Error opening log file: %s\n", CBB_LOG_FILE); + } + + pthread_mutex_unlock(&log_mutex); +} diff --git a/pkg/src/common/cm_log.h b/pkg/src/common/cm_log.h index 133062c6cd0d3aed33161f819ccaff01554a07b8..2ab0148c3e151381a8296debc9726778ec9e03eb 100644 --- a/pkg/src/common/cm_log.h +++ b/pkg/src/common/cm_log.h @@ -472,6 +472,12 @@ void cm_dump_mem(void *dump_addr, uint32 dump_len); } \ } while (0); +void get_current_time(char *buffer, size_t size); +void write_log_to_file(const char *file, int line, const char *format, ...); + +#define CBB_LOG(format, ...) write_log_to_file(__FILE__, __LINE__, format, ##__VA_ARGS__) +#define CBB_LOG_FILE "/opt/cantian/log/dss/run/cbb.log" + /* * warning id is composed of source + module + object + code * source -- DN(10)/CM(11)/OM(12)/DM(20)