From 44b614e333657141473e5e66ef12afa4c329f83d Mon Sep 17 00:00:00 2001 From: "huanfeng.wang" Date: Thu, 16 Nov 2023 17:44:14 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B1=E4=BA=8Efsync=E6=98=AF=E9=98=BB?= =?UTF-8?q?=E5=A1=9E=E7=9A=84=E4=BC=9A=E4=B8=A2=E5=A4=B1log=EF=BC=8C?= =?UTF-8?q?=E5=88=A0=E9=99=A4fsync=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- osp/src/ospLog.c | 166 ++++++++++++++++++++++++----------------------- 1 file changed, 84 insertions(+), 82 deletions(-) diff --git a/osp/src/ospLog.c b/osp/src/ospLog.c index 4b55b3d..6697e20 100644 --- a/osp/src/ospLog.c +++ b/osp/src/ospLog.c @@ -33,7 +33,7 @@ uint32_t g_ulApeLogMode = 1; /*0: ape log日志写入文件 1: 网口输 uint32_t g_ulArmLogMode = 0; /*0: arm log日志写入文件 1: 网口输出arm log 2:arm log日志shell打印输出*/ uint8_t g_ucPlatformMode = 1; /*0: platform log日志写入文件 1: 网口输出platform log 2:platform log日志shell打印输出*/ uint8_t g_time_now[128]; -uint8_t g_ucFflushEnable = 0; +uint8_t g_ucFflushEnable = 0; int32_t net_log_txudp_id = -1; /*吐网口log id*/ Osp_Server_Head gst_server_log; @@ -224,32 +224,32 @@ OSP_STATUS osp_update_log(uint32_t len, uint32_t logid, uint32_t msg_type) osp_get_current_time(); UCP_PRINT_LOG("osp_update_log logid:%d type:0x%x cur_sum_len:%u max_file_size_M:%u !\n", logid,type, p_log_file_cfg[logid][type].cur_sum_len, p_log_file_cfg[logid][type].max_file_size_M); - /*判断当前系统是否还有足够空间*/ + /*判断当前系统是否还有足够空间*/ //ulfreeram = osp_get_freeram(); if(1 == g_ucFflushEnable) { //sprintf(name, "rm -rf %s%u-%u-%s.log", p_log_file_cfg[logid][type].logname, (p_log_file_cfg[logid][type].cur_file_idx & 0x7)+1, logid, msg_name); - //system(name); - UCP_PRINT_LOG("osp_update_log line:%d logid:%d type:0x%x g_ucFflushEnable:%u name:%s\n", __LINE__, logid, type, g_ucFflushEnable, name); - osp_log_cfg_reload(); - } - + //system(name); + UCP_PRINT_LOG("osp_update_log line:%d logid:%d type:0x%x g_ucFflushEnable:%u name:%s\n", __LINE__, logid, type, g_ucFflushEnable, name); + osp_log_cfg_reload(); + } + if (p_log_file_cfg[logid][type].cur_sum_len >= p_log_file_cfg[logid][type].max_file_size_M) { p_log_file_cfg[logid][type].cur_sum_len = 0; p_log_file_cfg[logid][type].cur_file_idx++; - - file_idx = p_log_file_cfg[logid][type].cur_file_idx & 0x7; + + file_idx = p_log_file_cfg[logid][type].cur_file_idx & 0x7; if(p_log_file_cfg[logid][type].cur_file_idx >= p_log_file_cfg[logid][type].max_file_num) { /* naming rule: coreid-index-type.log */ sprintf(name, "rm -rf %s%u-%u-%s.log", p_log_file_cfg[logid][type].logname, logid, file_idx, msg_name); //sprintf(name, "rm -rf %s%u-%u-%s.log", p_log_file_cfg[logid][type].logname, file_idx, logid, msg_name); //sprintf(name, "%s-%d-%s-%u-%u-%s.log", p_log_file_cfg[logid][type].logname, getpid(), g_time_now, p_log_file_cfg[logid][type].cur_file_idx, logid, msg_name); - system(name); + system(name); UCP_PRINT_LOG("osp_update_log line:%d logid:%d type:0x%x remove name:%s\n", __LINE__, logid, type, name); } - + /*判断当前文件是否合法文件*/ if(NULL == p_log_file_cfg[logid][type].file) { @@ -257,9 +257,9 @@ OSP_STATUS osp_update_log(uint32_t len, uint32_t logid, uint32_t msg_type) return OSP_ERROR; } - fclose(p_log_file_cfg[logid][type].file); + fclose(p_log_file_cfg[logid][type].file); - osp_get_file_path(p_log_file_cfg[logid][type].logname, path); + osp_get_file_path(p_log_file_cfg[logid][type].logname, path); if (access(path, F_OK) != 0) { @@ -338,27 +338,27 @@ OSP_STATUS osp_update_log(uint32_t len, uint32_t logid, uint32_t msg_type) return OSP_OK; } - -void osp_log_output(unsigned char level, const char *fmt, ...) -{ + +void osp_log_output(unsigned char level, const char *fmt, ...) +{ uint32_t u32str_len = 0; - char acstr[256] = {0}; + char acstr[256] = {0}; va_list st_va_list; - - if (level > guc_print_level) - { - return; - } - - va_start(st_va_list, fmt); + + if (level > guc_print_level) + { + return; + } + + va_start(st_va_list, fmt); u32str_len = vsprintf((char *)acstr, fmt, st_va_list); - va_end(st_va_list); - - printf("%s", acstr); + va_end(st_va_list); + + printf("%s", acstr); osp_net_shell_out(acstr, u32str_len); - - return; -} + + return; +} @@ -452,7 +452,7 @@ uint32_t osp_get_freeram(void) /*默认起始端口号portIDStart=32768,二进制log的portID = portIDStart + core_id * 2;字符串log的portID = portIDStart + core_id * 2 + 1; - 平台网口log默认端口号为32800,ul_port = ul_platform_port + 2*uc_src_core_id;*/ + 平台网口log默认端口号为32800,ul_port = ul_platform_port + 2*uc_src_core_id;*/ uint32_t osp_get_ape_port(osp_sw_msg_info_t *pMsg) { uint32_t ul_port = 0; @@ -472,15 +472,15 @@ uint32_t osp_get_ape_port(osp_sw_msg_info_t *pMsg) case OSP_STR_LOG: ul_port = ul_start_port + 2*uc_src_core_id + 1; break; - case OSP_PLATFORM_LOG: + case OSP_PLATFORM_LOG: ul_port = ul_platform_port + 2*uc_src_core_id; - break; + break; default: break; } - + UCP_PRINT_LOG("osp_get_ape_port ul_port:%u uc_src_core_id:%u uc_msg_type:0x%x\n", ul_port, uc_src_core_id, uc_msg_type); - + return ul_port; } @@ -502,7 +502,7 @@ void osp_net_log_proc(char *pMsg, uint32_t len, uint32_t port) } //UCP_PRINT_LOG("osp_net_log_proc line:%d len[%u] udp_id[%u] ip[%s] port[%u]\n", __LINE__, len, net_log_txudp_id, gst_server_log.ip, port); - + osp_udp_send(pMsg, len, net_log_txudp_id); return; @@ -511,10 +511,10 @@ void osp_net_log_proc(char *pMsg, uint32_t len, uint32_t port) OSP_STATUS osp_write_diaglog(char *pbuf, uint32_t len ,uint32_t logid, uint32_t msg_type) { - int32_t ret = 0; + int32_t ret = 0; static FILE *file = NULL; - uint32_t fd; - + /*uint32_t fd;*/ + if (NULL == g_OspLogSem) { return OSP_ERROR; @@ -540,40 +540,42 @@ OSP_STATUS osp_write_diaglog(char *pbuf, uint32_t len ,uint32_t logid, uint32_t if (NULL == file) { osp_sem_give(g_OspLogSem); - return OSP_ERROR; + return OSP_ERROR; } ret = fwrite(pbuf, sizeof(char), len, file); - if(ret <= 0) + if(ret <= 0) { UCP_PRINT_LOG("fwrite error ret:%d\n", ret); fclose(file); osp_sem_give(g_OspLogSem); return OSP_ERROR; - } - - ret = fflush(file); + } + + ret = fflush(file); if(OSP_OK != ret) - { - UCP_PRINT_LOG("fflush error ret:%d\n", ret); - g_ucFflushEnable = 1; - } - else - { - UCP_PRINT_LOG("fflush ok ret:%d\n", ret); - g_ucFflushEnable = 0; - } - + { + UCP_PRINT_LOG("fflush error ret:%d\n", ret); + g_ucFflushEnable = 1; + } + else + { + UCP_PRINT_LOG("fflush ok ret:%d\n", ret); + g_ucFflushEnable = 0; + } + + #if 0 /*feature enhancement1300*/ fd = fileno(file); - ret = fsync(fd); + ret = fsync(fd); if(OSP_OK != ret) - { - UCP_PRINT_LOG("fsync error ret:%d\n", ret); + { + UCP_PRINT_LOG("fsync error ret:%d\n", ret); fclose(file); osp_sem_give(g_OspLogSem); - return OSP_ERROR; - } - + return OSP_ERROR; + } + #endif + osp_sem_give(g_OspLogSem); return OSP_OK; @@ -704,7 +706,7 @@ void osp_platform_log_proc(osp_sw_msg_info_t *pMsg) osp_log_print(pMsg);/*ape结果输出到屏幕*/ break; default: - break; + break; } @@ -922,7 +924,7 @@ void osp_log_mode_get() return; } - + uint32_t osp_filter_char(char *str, char c) { uint8_t i = 0; @@ -955,9 +957,9 @@ void osp_dbg_log_main(osp_sw_msg_info_t *pMsg) case OSP_BIN_LOG: osp_ape_log_proc(pMsg); break; - case OSP_PLATFORM_LOG: - osp_platform_log_proc(pMsg); - break; + case OSP_PLATFORM_LOG: + osp_platform_log_proc(pMsg); + break; default: break; } @@ -1163,8 +1165,8 @@ int32_t osp_log_msg_proc(uint8_t *pu8msg_add, uint32_t u32msg_size) //printf("i8Data = %p, len = %d, coreid = %d, type = %d\r\n", pstsw_msg_info->i8Data, pstsw_msg_info->u16DataLen, pstsw_msg_info->u8CoreId, pstsw_msg_info->u8PktType); //osp_write_diaglog((char*)pstsw_msg_info->i8Data, pstsw_msg_info->u16DataLen, pstsw_msg_info->u8CoreId, pstsw_msg_info->u8PktType); - osp_dbg_log_main(pstsw_msg_info); - } + osp_dbg_log_main(pstsw_msg_info); + } u32msg_cur_size += u32log_size; } else if (MSG_TRANSFER_SHELL_MSG_TYPE == u32msg_type) @@ -1189,21 +1191,21 @@ int32_t osp_log_msg_proc(uint8_t *pu8msg_add, uint32_t u32msg_size) return 0; } -uint32_t rx_callback_oam(const char* buf,uint32_t payloadSize) -{ - osp_log_msg_info_t stosp_log_msg; - int32_t i32log_que_id = osp_log_msg_get_id(); - - memset(&stosp_log_msg, 0, sizeof(stosp_log_msg)); - stosp_log_msg.pu8msg_addr = (uint8_t *)buf; - stosp_log_msg.u32msg_size = payloadSize; - - //UCP_PRINT_LOG("oam recv: buf = %p, size = %d\r\n", buf, payloadSize); - - osp_log_msg_send(i32log_que_id, (uint8_t*)&stosp_log_msg, sizeof(stosp_log_msg)); - - return payloadSize; -} +uint32_t rx_callback_oam(const char* buf,uint32_t payloadSize) +{ + osp_log_msg_info_t stosp_log_msg; + int32_t i32log_que_id = osp_log_msg_get_id(); + + memset(&stosp_log_msg, 0, sizeof(stosp_log_msg)); + stosp_log_msg.pu8msg_addr = (uint8_t *)buf; + stosp_log_msg.u32msg_size = payloadSize; + + //UCP_PRINT_LOG("oam recv: buf = %p, size = %d\r\n", buf, payloadSize); + + osp_log_msg_send(i32log_que_id, (uint8_t*)&stosp_log_msg, sizeof(stosp_log_msg)); + + return payloadSize; +} uint64_t osp_oam_msg_proc_task(void)