From: Heidi N. <hei...@us...> - 2005-04-06 15:17:46
|
Update of /cvsroot/sblim/cmpi-base In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4020 Modified Files: CHANGE.LOG OSBase_Common.c Log Message: restructured init process for SBLIM tracing into a file Index: OSBase_Common.c =================================================================== RCS file: /cvsroot/sblim/cmpi-base/OSBase_Common.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- OSBase_Common.c 23 Feb 2005 13:01:26 -0000 1.12 +++ OSBase_Common.c 6 Apr 2005 15:17:33 -0000 1.13 @@ -48,41 +48,70 @@ /* ---------------------------------------------------------------------------*/ -int _debug = 0; -char * _SBLIM_TRACE_FILE = NULL; +int _debug = 0; +int _SBLIM_TRACE_ENABLED = 0; +int _SBLIM_TRACE_FILE_ENABLED = 0; +char * _SBLIM_TRACE_FILE = NULL; -/* initialization routine */ -void _init() { +void _init_trace_level() { - char * var = NULL; - char * err = NULL; - FILE * ferr = NULL; + char *var = NULL; + + if(_SBLIM_TRACE_ENABLED == 1) return; var = getenv("SBLIM_TRACE"); - if( var != NULL ) { + if(var != NULL) { _debug = atoi(var); + fprintf(stderr,"SBLIM TRACE LEVEL: %i\n",_debug); + _SBLIM_TRACE_ENABLED = 1; } else { _debug = 0; } - - err = getenv("SBLIM_TRACE_FILE"); - if( err != NULL ) { - if( ( ((ferr=fopen(err,"a")) == NULL) || fclose(ferr) ) ) { - fprintf(stderr,"Couldn't create trace file\n"); + + return; +} + +void _init_trace_file() { + + char *var = NULL; + FILE *fhd = NULL; + + if(_SBLIM_TRACE_FILE_ENABLED == 1) return; + + var = getenv("SBLIM_TRACE_FILE"); + if( var != NULL ) { + if( ( ((fhd=fopen(var,"a")) == NULL) || fclose(fhd) ) ) { + fprintf(stderr,"Couldn't open/create trace file: %s\n",var); return; } - _SBLIM_TRACE_FILE = strdup(err); + _SBLIM_TRACE_FILE = strdup(var); + fprintf(stderr,"SBLIM TRACE FILE created: %s\n",_SBLIM_TRACE_FILE); + _SBLIM_TRACE_FILE_ENABLED = 1; } else { - if(_SBLIM_TRACE_FILE) free(_SBLIM_TRACE_FILE); - _SBLIM_TRACE_FILE = NULL ; + _SBLIM_TRACE_FILE_ENABLED = 0; + _SBLIM_TRACE_FILE = NULL; } + return; +} + +/* initialization routine */ +void _init() { + _init_trace_level(); + _init_trace_file(); + return; } /* deinitialization routine */ void _fini() { free ( CIM_HOST_NAME ); free ( CIM_OS_NAME ); - if(_SBLIM_TRACE_FILE) free(_SBLIM_TRACE_FILE); + _debug = 0; + _SBLIM_TRACE_ENABLED = 0; + _SBLIM_TRACE_FILE_ENABLED = 0; + if(_SBLIM_TRACE_FILE) { + free(_SBLIM_TRACE_FILE); + _SBLIM_TRACE_FILE = NULL; + } } /* ---------------------------------------------------------------------------*/ @@ -526,14 +555,9 @@ char * tm = NULL; FILE * ferr = NULL; - if( (_SBLIM_TRACE_FILE != NULL) ) { - if( (ferr=fopen(_SBLIM_TRACE_FILE,"a")) == NULL ) { - fprintf(stderr,"Couldn't open trace file"); - return; - } - } - else { ferr = stderr; } - + _init_trace_level(); + _init_trace_file(); + if( gettimeofday( &tv, &tz) == 0 ) { sec = tv.tv_sec + (tz.tz_minuteswest*-1*60); tm = (char*)malloc(20); @@ -541,11 +565,26 @@ if( gmtime_r( &sec , &cttm) != NULL ) { strftime(tm,20,"%m/%d/%Y %H:%M:%S",&cttm); } + } + + if( (_SBLIM_TRACE_FILE != NULL) ) { + if( (ferr=fopen(_SBLIM_TRACE_FILE,"a")) == NULL ) { + perror("perror: Couldn't open/create trace file %s\n"); + if(tm) + fprintf(stderr,"[%s] Couldn't open/create trace file %s\n",tm,_SBLIM_TRACE_FILE); + else + fprintf(stderr,"Couldn't open/create trace file %s\n",_SBLIM_TRACE_FILE); + return; + } + } + else { ferr = stderr; } + + if(tm) { fprintf(ferr,"[%i] [%s] --- %s(%i) : %s\n", level, tm, file, line, msg); } else { fprintf(ferr,"[%i] --- %s(%i) : %s\n", level, file, line, msg); - } + } if( (_SBLIM_TRACE_FILE != NULL) ) { fclose(ferr); Index: CHANGE.LOG =================================================================== RCS file: /cvsroot/sblim/cmpi-base/CHANGE.LOG,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- CHANGE.LOG 17 Mar 2005 08:39:53 -0000 1.12 +++ CHANGE.LOG 6 Apr 2005 15:17:27 -0000 1.13 @@ -60,5 +60,6 @@ * added sample subscriptions to test/indication directory * updated README.INDICATION with better description and sample for openPegasus +* restructured init process for SBLIM tracing into a file // =================================================================== |