//****************************************************************************** // ModuleName: Log management system // FileName: log_define.h // DESCRIPTION: common data struct definition // FUNCTION LIST: // COMMENT: public application // History: // Date Version Modifier Activities // 2003-04-08 1.0 wkm modify //============================================================================== // 2002-09-01 1.0 zzs created //****************************************************************************** #ifndef __LOG_DEFINE_H #define __LOG_DEFINE_H #include #include #include "port_def.h" #include #ifndef _WINDOWS64 #include #include #ifdef _SUN #undef TRANSPARENT #endif #include #include #include #include #include #include #include #include #include #include //#include #else #include #include #include #endif #include #include #include #include #ifdef _WINDOWS64 #undef _ALPHA #endif #ifdef _ALPHA #include #endif #include #include #include #include #include #include #ifdef _WINDOWS64 #include #include #endif // //definition // #ifndef _WINDOWS64 const int LOG_SHM_KEY = 0x1999; #else #define HAVE_WINSOCK_H #endif const int MAX_PROCESS_NUM = 1024; const int MAX_CLIENT_NUM = 10; //max client to view log const int MAX_FILTER_PROC_NUM = 50; //max process num to filter for each client const int MAX_BUFFER_LENGTH = 4096; // max text line length const int COMMAND_LENGTH = 40; const int NMAE_LENGTH = 40; const int MAXNAMELEN = 32; //max txt/app/proc/lib name ref to D5000 -- gs const int MAX_LOG_FILE_LEN = 200; //max log file length:200MB const int MAX_LOG_FILE_ACCOUNT = 30; //日志文件总个数上限(默认值:30个) const int LOG_FILE_DEL = 1; // 当日志文件总个数超过MAX_LOG_FILE_ACCOUNT个时,删除LOG_FILE_DEL个最旧的日志文件(默认值:2个) const int MAX_LOG_FILE_ACCOUNT_ONE_DAY = 10; // 每天的日志文件个数上限(默认值:10个) const int LOG_FILE_DEL_ONE_DAY = 1; // 当某天的日志文件个数超过MAX_LOG_FILE_ACCOUNT_ONE_DAY个时,删除LOG_FILE_DEL_ONE_DAY个最旧的日志文件(默认值:2个) // //following block is event type // //enum WARNING_LEVEL //{ // MESSAGE_DEBUG = 0, //调试信息 // MESSAGE_NORMAL = 1, //正常运行信息 // MESSAGE_WARN0 = 2, //一般告警 // MESSAGE_WARN1 = 3, //严重告警 // MESSAGE_ERROR0 = 4, //一般错误 // MESSAGE_ERROR1 = 5 //严重错误 //}; const int LOG_EMERG = 0; const int LOG_ALERT = 1; const int LOG_CRIT = 2; const int LOG_ERR = 3; const int LOG_WARNING = 4; const int LOG_NOTICE = 5; const int LOG_INFO = 6; const int LOG_DEBUG = 7; const int LOG_REMOTE = 8; //add 20130924 const int MSG_DEBUG = 0; //调试信息 const int MSG_NORMAL = 1; //正常运行信息 const int MSG_WARN0 = 2; //一般告警 const int MSG_WARN1 = 3; //严重告警 const int MSG_ERROR0 = 4; //一般错误 const int MSG_ERROR1 = 5; //严重错误 const int STA_ACTIVE = 0; //进程正常 const int STA_ABNORMAL = 1; //进程异常 const int STA_DEBUG = 2; //进程调试 //const int SERV_UDP_PORT = 9877; //const int SERV_UDP_PORT = 98770; const int SERV_UDP_PORT = 19801; #ifdef _WINDOWS64 const int SERV_TCP_PORT = 32352; #else //const int SERV_TCP_PORT = 97888; //const int SERV_TCP_PORT = 98771; const int SERV_TCP_PORT = 19802; #endif const int MAX_BTYES_ONE_TIME_SEND = 2000; //#define HOST_NAME_LEN 40 //following block is system flag' value //#define SYS_YES 1 //#define SYS_NO 0 //following block is //#define CONNECT_TIME_MSECOND 200 //#define MAX_BTYES_ONE_TIME_SEND 2000 struct SYS_MSG //for log_view { char log_date[60]; char log_time[60]; char ctx_name[MAXNAMELEN]; char app_name[MAXNAMELEN]; char proc_name[MAXNAMELEN]; char lib_name[MAXNAMELEN]; char proc_id[60]; char msg_level[60]; char msg[260]; }; // // process info for logd and api // struct PROCESS_INFO { int proc_pid; int start_time; char ctx_name[MAXNAMELEN]; char app_name[MAXNAMELEN]; char proc_name[MAXNAMELEN]; char lib_name[MAXNAMELEN]; unsigned char proc_status; //active, dead etc unsigned char msg_level; //set by logd, read by each process struct PROCESS_INFO& operator= (const struct PROCESS_INFO& proc_info) { if( this == &proc_info) { return *this; } proc_pid = proc_info.proc_pid; start_time = proc_info.start_time; strcpy(ctx_name, proc_info.ctx_name); strcpy(app_name, proc_info.app_name); strcpy(proc_name, proc_info.proc_name); strcpy(lib_name, proc_info.lib_name); proc_status = proc_info.proc_status; msg_level = proc_info.msg_level; return *this; } }; struct PROCESS_BASE_INFO { char ctx_name[MAXNAMELEN]; char app_name[MAXNAMELEN]; char proc_name[MAXNAMELEN]; char lib_name[MAXNAMELEN]; unsigned char msg_level; struct PROCESS_BASE_INFO& operator= (const struct PROCESS_INFO& proc_info) { strcpy(ctx_name, proc_info.ctx_name); strcpy(app_name, proc_info.app_name); strcpy(proc_name, proc_info.proc_name); strcpy(lib_name, proc_info.lib_name); msg_level = proc_info.msg_level; return *this; } }; // // client info for log view // struct CLIENT_INFO { int sockfd; //connection id in TCP int filter_num; //real process num that need filter unsigned char chief_msg_level; PROCESS_BASE_INFO filter[MAX_FILTER_PROC_NUM]; //max process to filter for each client }; #endif