#ifndef LIBLOG_DEFINE_H #define LIBLOG_DEFINE_H #ifdef WIN32 #define LOG_EXPORT _declspec(dllexport) #else #define LOG_EXPORT #endif #ifdef __cplusplus # define LOG_CPP_START extern "C" { # define LOG_CPP_END } #else # define LOG_CPP_START # define LOG_CPP_END #endif typedef int log_status_t; struct _post_log_result { int statusCode; char * errorMessage; char * requestID; }; typedef struct _post_log_result post_log_result; typedef enum { LOG_TYPE_SYSTEM = 0/*系统日志*/, LOG_TYPE_USER = 1/*用户日志*/, LOG_TYPE_BUSINESS_SYSTEM = 2, LOG_TYPE_BUSINESS_USER = 3, LOG_TYPE_VTMWEB = 4 }LOG_TYPE_E; typedef enum { LOG_LEVEL_DEBUG = 0, LOG_LEVEL_INFO = 1, LOG_LEVEL_WARN = 2, LOG_LEVEL_ERROR = 3, LOG_LEVEL_FATAL = 4 }LOG_LEVEL_E; /** * 天眼log item */ typedef struct _log_item { /***************************必填begin**********************/ LOG_LEVEL_E Level; LOG_TYPE_E Type; //用户、系统日志均必填,交易处理结果代码,0表示处理成功,其他表示失败,可为系统本身的错误码,也可为后台系统返回的错误码 char* ResultCode; //用户、系统日志均必填,业务跟踪ID, 32字节长度的字符串,唯一识别每笔请求 char* TraceID; //用户、系统日志LOG_LEVEL_WARN以上必填 //交易处理结果信息,包括成功与失败信息,可为系统本身的成功/失败信息,也可为后台系统返回的成功/失败信息. char* ResultMsg; /***************************用户日志必填必填begin**********************/ //用户日志必填,日志码 //终端中标识各个交易如读卡、读取身份证等。如果终端由于客观原因无法识别交易场景,则可字段由上游传入。 char* LogCode; //用户日志必填,请求路径/接口名称. char* API; //用户日志必填, 请求发送/接收时间 long BeginTime; //用户日志必填, 响应接收 / 应答时间 long EndTime; //自定义字段,消耗时间 long CostTime; char* VtmCode; //用户日志必填,请求业务ID char* BussID; //用户日志LOG_LEVEL_WARN以上必填,直接向客户展示的报错信息. char* TipMsg; /***************************系统日志必填begin**********************/ //系统日志LOG_LEVEL_FATAL必填,异常来源类型 char* SourceType; }log_item; /** * 北斗log item */ typedef struct _beidou_log_item { char* BussID; char* TraceID; char* ParentSpanId; char* SpanId; char* Host; char* Api; char* ReturnCode; char* ResponseTime; char* CallStack; char* DbStack; char* Tags; char* deployUnitId; char* serviceUnitId; }beidou_log_item; #endif