X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Frmr%2Fcommon%2Fsrc%2Flogging.c;h=56457f7b530be291d5bf7419bcdcc3cedcb45d2c;hb=fd4477a9698a46ce5755d614b663c18ceadf43c4;hp=0105391f6789f535032494ad0fbf25ee9c4900d4;hpb=0d4def6c7b673f3be486338ced65ccdd25a859ed;p=ric-plt%2Flib%2Frmr.git diff --git a/src/rmr/common/src/logging.c b/src/rmr/common/src/logging.c index 0105391..56457f7 100644 --- a/src/rmr/common/src/logging.c +++ b/src/rmr/common/src/logging.c @@ -101,8 +101,8 @@ extern int rmr_vlog_init( ) { if( (data = getenv( ENV_LOG_VLEVEL )) != NULL ) { log_vlevel = atoi( data ); - if( log_vlevel < 0 ) { - log_vlevel = 0; + if( log_vlevel < -1 ) { // allow housekeeping stats to be squelched with -1 + log_vlevel = -1; } else { if( log_vlevel > RMR_VL_DEBUG ) { log_vlevel = RMR_VL_DEBUG; @@ -145,13 +145,19 @@ extern void rmr_vlog( int write_level, char* fmt, ... ) { write_level = RMR_VL_DEBUG; } + memset( msg, 0, sizeof( msg ) ); // logging is slow; this ensures 0 term if msg is too large hlen = snprintf( msg, sizeof( msg ), "%ld %d/RMR [%s] ", (long) time( NULL ), log_pid, log_situations[write_level] ); + if( hlen > sizeof( msg ) - 1024 ) { // should never happen, but be parinoid + return; + } body = msg + hlen; va_start( argp, fmt ); // suss out parm past fmt vsnprintf( body, sizeof( msg ) - (hlen+2), fmt, argp ); // add in user message formatting it along the way fprintf( stderr, "%s", msg ); // we grew from printfs so all existing msg have \n; assume there + + va_end( argp ); } /* @@ -171,6 +177,10 @@ extern void rmr_vlog_force( int write_level, char* fmt, ... ) { rmr_vlog_init(); } + if( log_vlevel <= 0 ) { // can force if off completely to allow for total silience + return; + } + if( write_level > RMR_VL_DEBUG || write_level < 0 ) { write_level = RMR_VL_DEBUG; } @@ -182,6 +192,8 @@ extern void rmr_vlog_force( int write_level, char* fmt, ... ) { vsnprintf( body, sizeof( msg ) - (hlen+2), fmt, argp ); // add in user message formatting it along the way fprintf( stderr, "%s", msg ); // we grew from printfs so all existing msg have \n; assume there + + va_end( argp ); } // -------------------- public functions that are needed -----------------