AMPS:Trace模块源码解读 (七)
***
函数名称: Trace_OpenFileForTracing
功能描述: 打开跟踪文件
入参::
void* r_pvAMPSTrace AMPS跟踪上下文数据结构
r_pvAMPSTrace 跟踪文件名称
出参:
--
返回值:
AMPS_SUCCESS
AMPS_ERROR_FAILURE
*****************************************************************/
int Trace_OpenFileForTracing(void* r_pvAMPSTrace, char* r_pchFileName)
{
t_AMPSTrace* poAMPSTrace = r_pvAMPSTrace;
char pchFileNameWithTimeStamp[AMPS_SIZE_OF_TRACE_FILE_NAME_PLUS_TIME_STAMP];
if(NULL == poAMPSTrace)
{
return AMPS_ERROR_FAILURE;
}
memset(pchFileNameWithTimeStamp, 0, AMPS_SIZE_OF_TRACE_FILE_NAME_PLUS_TIME_STAMP);
SAPI_GetCurrentTime(poAMPSTrace->pvAMPSContext, &poAMPSTrace->oAMPSTimerValue);
sprintf(pchFileNameWithTimeStamp, "%s/%d.%d.%d.%d_%s", poAMPSTrace->pchTraceFilePath, poAMPSTrace->oAMPSTimerValue.nHour, poAMPSTrace->oAMPSTimerValue.nMinute, poAMPSTrace->oAMPSTimerValue.nSecond, poAMPSTrace->oAMPSTimerValue.nMilliSecond,AMPS_TRACE_FILE_NAME);
if(AMPS_SUCCESS != SAPI_FileOpen(poAMPSTrace->pvAMPSContext, &poAMPSTrace->oAMPSFile, pchFileNameWithTimeStamp, AMPS_TRUE))
{
printf("Trace_OpenFileForTracing: SAPI_FileOpen failed\n");
return AMPS_ERROR_FAILURE;
}
return AMPS_SUCCESS;
}
#include "AMPS_Defines.h"
#include "AMPS_LinkList.h"
#include "AMPS_SystemAPI.h"
#include "AMPS_Core.h"
#include "AMPS_MemMgt.h"
#include "AMPS_Trace.h"
#include "AMPS_Core.h"
#include "AMPS_API.h"
/*全局跟踪句柄*/
t_AMPSTrace* g_poAMPSTrace;
/*跟踪级别*/
char ppchTraceStr[5][20] =
{
"ERROR",
"WARNING",
"DEBUG",
"DEBUG_2",
"INFO"
};
/*****************************************************************
函数名称: Trace_Init
功能描述: 初始化跟踪模块,由AMPS核心模块初始函数Core_Init调用
入参::
void* r_pvAMPSContext AMPS应用上下文数据结构
char* r_pchFilePath 跟踪文件路径
unsigned int r_unTraceLevel 跟踪级别,取值为:
char ppchTraceStr[5][20] =
{
"ERROR",
"WARNING",
"DEBUG",
"DEBUG_2",
"INFO"
};
unsigned int r_unTraceLevel 跟踪记录模式,取值为:
typedef enum
{
AMPS_TRACE_MODE_DISPLAY = 1,
AMPS_TRACE_MODE_FILE = 2,
AMPS_TRACE_MODE_BOTH = 3
}e_AMPSTraceMode;
出参:
--
返回值:
AMPS_SUCCESS: success
AMPS_ERROR_FAILURE: fail
*****************************************************************/
int Trace_Init(void* r_pvAMPSContext, char* r_pchFilePath, unsigned int r_unTraceLevel, unsigned int r_unTraceMode)
{
t_AMPSTrace* poAMPSTrace = NULL;
printf("Trace_Init : Entering %s with mode %d .\n", r_pchFilePath, r_unTraceMode);
poAMPSTrace = (t_AMPSTrace*)AMPS_InternalMalloc(sizeof(t_AMPSTrace));
if(NULL == poAMPSTrace)
{
printf("Trace_Init : AMPS_InternalMalloc failed.\n");
return AMPS_ERROR_FAILURE;
}
poAMPSTrace->pvAMPSContext = r_pvAMPSContext;
poAMPSTrace->unTraceLevel = r_unTraceLevel ;
poAMPSTrace->unModuleId = 0;
poAMPSTrac