?? lc_syslog.c
字號:
/* * Copyright (C) 2002 Ricardo Arroyo <ricardo.arroyo@eresmas.net> * * This code may be used under the terms of Version 2 of the GPL, * read the file COPYING for details. * */#include <syslog.h>#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <stdlib.h>#include <stdarg.h>#include <string.h>#include "lc_syslog.h"static int bFirst = 1;/*----------------------------------------------------------------------------*//* FUNCTION : *//* SYSTEM LOG vLC_syslog(iCode, va_alist); *//* .- Writes an error in system log *//* .- iCode is the LOG code (see lc_syslog.h) *//* .- va_alist is a list of variable arguments *//* *//*----------------------------------------------------------------------------*/void vLC_syslog(int iCode, ...){va_list ap;char *sAux1;char *sAux2;char *sAux3;char *sAux4;int iAux1;long lAux1; va_start(ap, iCode); if (bFirst) { openlog(NULL, LOG_PID, LOG_USER); bFirst = 0; } switch (iCode) { // *************************** WARNINGS **************************** // // ***************************************************************** // // *************************** Modules start message *************** // case LCLOG_WAR_GPSRECSTART: sAux1 = va_arg(ap, char *); sAux2 = va_arg(ap, char *); sAux3 = va_arg(ap, char *); iAux1 = va_arg(ap, int); sAux4 = va_arg(ap, char *); syslog( LOG_INFO | LOG_USER, "%s-%s: %s, Port: %s, TO: %d, Protocol: %s\n",sAux1, sAux2, LCLOG_WAR_GPSRECSTART_MSG, sAux3, iAux1, sAux4); break; case LCLOG_WAR_WGS2UTMERR: sAux1 = va_arg(ap, char *); syslog( LOG_INFO | LOG_USER, "%s, %s\n",LCLOG_WAR_WGS2UTMERR_MSG, sAux1); break; case LCLOG_WAR_DATUMCONVERR: sAux1 = va_arg(ap, char *); syslog( LOG_INFO | LOG_USER, "%s, %s\n",LCLOG_WAR_DATUMCONVERR_MSG, sAux1); break; // *************************** ERRORS ****************************** // // ***************************************************************** // // *********************** MEMORY ********************************** // case LCLOG_ERR_MALLOC: sAux1 = va_arg(ap, char *); syslog( LOG_ERR | LOG_USER, "%s %s, %m\n",LCLOG_ERR_MALLOC_MSG, sAux1); break; case LCLOG_ERR_REALLOC: sAux1 = va_arg(ap, char *); syslog( LOG_ERR | LOG_USER, "%s %s\n",LCLOG_ERR_REALLOC_MSG, sAux1); break; case LCLOG_ERR_MEMCPY: sAux1 = va_arg(ap, char *); syslog( LOG_ERR | LOG_USER, "%s %s\n",LCLOG_ERR_MEMCPY_MSG, sAux1); break; // ************************* IPC MESSAGE QUEUES ********************* // case LCLOG_ERR_MSGQCREATE: sAux1 = va_arg(ap, char *); lAux1 = va_arg(ap, long); syslog( LOG_ERR | LOG_USER, "%s %s, %ld, %m\n",LCLOG_ERR_MSGQCREATE_MSG, sAux1, lAux1); break; case LCLOG_ERR_MSGQOPEN: sAux1 = va_arg(ap, char *); lAux1 = va_arg(ap, long); syslog( LOG_ERR | LOG_USER, "%s %s, %ld, %m\n",LCLOG_ERR_MSGQOPEN_MSG, sAux1, lAux1); break; case LCLOG_ERR_MSGQDEL: sAux1 = va_arg(ap, char *); iAux1 = va_arg(ap, int); syslog( LOG_ERR | LOG_USER, "%s %s, %d, %m\n",LCLOG_ERR_MSGQDEL_MSG, sAux1, iAux1); break; case LCLOG_ERR_MSGQSEND: sAux1 = va_arg(ap, char *); iAux1 = va_arg(ap, int); syslog( LOG_ERR | LOG_USER, "%s %s, %d, %m\n",LCLOG_ERR_MSGQSEND_MSG, sAux1, iAux1); break; case LCLOG_ERR_MSGQRECEIVE: sAux1 = va_arg(ap, char *); iAux1 = va_arg(ap, int); syslog( LOG_ERR | LOG_USER, "%s %s, %d, %m\n",LCLOG_ERR_MSGQRECEIVE_MSG, sAux1, iAux1); break; // ************************** IPC SHARED MEMORY ************************ // case LCLOG_ERR_SHMGET: sAux1 = va_arg(ap, char *); iAux1 = va_arg(ap, int); syslog( LOG_ERR | LOG_USER, "%s %s, errno = %d,%s\n",LCLOG_ERR_SHMGET_MSG, sAux1, iAux1, strerror(iAux1)); break; case LCLOG_ERR_SHMAT: sAux1 = va_arg(ap, char *); iAux1 = va_arg(ap, int); syslog( LOG_ERR | LOG_USER, "%s %s, errno = %d,%s\n",LCLOG_ERR_SHMAT_MSG, sAux1, iAux1, strerror(iAux1)); break; // ************************** IPC SEMAPHORES ***************************** // case LCLOG_ERR_SEMGET: sAux1 = va_arg(ap, char *); lAux1 = va_arg(ap, int); syslog( LOG_ERR | LOG_USER, "%s %s, %ld\n",LCLOG_ERR_SEMGET_MSG, sAux1, lAux1); break; case LCLOG_ERR_SEMULK: sAux1 = va_arg(ap, char *); iAux1 = va_arg(ap, int); syslog( LOG_ERR | LOG_USER, "%s %s, %d\n",LCLOG_ERR_SEMULK_MSG, sAux1, iAux1); break; case LCLOG_ERR_SEMLK: sAux1 = va_arg(ap, char *); iAux1 = va_arg(ap, int); syslog( LOG_ERR | LOG_USER, "%s %s, %d\n",LCLOG_ERR_SEMLK_MSG, sAux1, iAux1); break; case LCLOG_ERR_SEMRM: sAux1 = va_arg(ap, char *); iAux1 = va_arg(ap, int); syslog( LOG_ERR | LOG_USER, "%s %s, %d\n",LCLOG_ERR_SEMRM_MSG, sAux1, iAux1); break; // **************************** GPS LIBRARY ****************************** // case LCLOG_ERR_NOGPSINIT: sAux1 = va_arg(ap, char *); syslog( LOG_ERR | LOG_USER, "%s %s \n",LCLOG_ERR_NOGPSINIT_MSG, sAux1); break; case LCLOG_ERR_NOGPSOFF: sAux1 = va_arg(ap, char *); iAux1 = va_arg(ap, int); syslog( LOG_ERR | LOG_USER, "%s %s, err=%d \n",LCLOG_ERR_NOGPSOFF_MSG, sAux1, iAux1); break; case LCLOG_ERR_PTVCONS: sAux1 = va_arg(ap, char *); syslog( LOG_ERR | LOG_USER, "%s %s \n",LCLOG_ERR_PTVCONS_MSG, sAux1); break; case LCLOG_ERR_PTVON: sAux1 = va_arg(ap, char *); iAux1 = va_arg(ap, int); syslog( LOG_ERR | LOG_USER, "%s %s, error=%d \n",LCLOG_ERR_PTVON_MSG, sAux1, iAux1); break; // **************************** Threads ****************************** // case LCLOG_ERR_THREADCREATE: sAux1 = va_arg(ap, char *); iAux1 = va_arg(ap, int); syslog( LOG_ERR | LOG_USER, "%s %s, %d, %m \n",LCLOG_ERR_THREADCREATE_MSG, sAux1, iAux1); break; } if ( iCode >= LCLOG_MIN_ERR) exit (-90); va_end(ap);}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -