/*-------------------------------------------------------------------*/ DLL_EXPORT void logdevtr(DEVBLK *dev,char *msg,...) { char *bfr=NULL; int rc; int siz=1024; va_list vl; #ifdef NEED_LOGMSG_FFLUSH fflush(stdout); #endif if(dev->ccwtrace||dev->ccwstep) { BFR_VSNPRINTF(); if(bfr) { if ( !strncmp(bfr, "HHC", 3) && strlen(bfr) > 10 ) log_write( 2, ( sysblk.emsg & EMSG_TEXT ) ? &bfr[10] : bfr ); else log_write( 2, bfr ); } } #ifdef NEED_LOGMSG_FFLUSH fflush(stdout); #endif if(bfr) { free(bfr); } } /* end function logdevtr */
/*-------------------------------------------------------------------*/ DLL_EXPORT void logmsgb(char *msg,...) { char *bfr=NULL; char *ptr; int rc; int siz=1024; va_list vl; #ifdef NEED_LOGMSG_FFLUSH fflush(stdout); #endif BFR_VSNPRINTF(); if(bfr) { if ( !strncmp(bfr, "HHC", 3) && strlen(bfr) > 10 ) log_write( 2, ( sysblk.emsg & EMSG_TEXT ) ? &bfr[10] : bfr ); else log_write( 2, bfr ); } #ifdef NEED_LOGMSG_FFLUSH fflush(stdout); #endif if(bfr) { free(bfr); } }
/*-------------------------------------------------------------------*/ DLL_EXPORT void logmsgb(char *msg,...) { char *bfr=NULL; int rc; int siz=1024; va_list vl; #ifdef NEED_LOGMSG_FFLUSH fflush(stdout); #endif BFR_VSNPRINTF(); if(bfr) log_write(2,bfr); #ifdef NEED_LOGMSG_FFLUSH fflush(stdout); #endif if(bfr) { free(bfr); } }
/*-------------------------------------------------------------------*/ DLL_EXPORT void logdevtr(DEVBLK *dev,char *msg,...) { char *bfr=NULL; int rc; int siz=1024; va_list vl; #ifdef NEED_LOGMSG_FFLUSH fflush(stdout); #endif if(dev->ccwtrace||dev->ccwstep) { logmsg("%4.4X:",dev->devnum); BFR_VSNPRINTF(); if(bfr) log_write(2,bfr); } #ifdef NEED_LOGMSG_FFLUSH fflush(stdout); #endif if(bfr) { free(bfr); } } /* end function logdevtr */
DLL_EXPORT void writemsg(const char *srcfile, int line, const char* function, int grp, int lvl, char *color, char *msg, ...) { char *bfr = NULL; char *msgbuf = NULL; int rc = 1; int errmsg = FALSE; int siz = 1024; char file[FILENAME_MAX]; char prefix[64]; va_list vl; bfr = strdup(srcfile); strlcpy(file, basename(bfr), sizeof(file)); free(bfr); bfr = NULL; memset(prefix, 0, sizeof(prefix)); #ifdef OPTION_MSGLCK if(!sysblk.msggrp || (sysblk.msggrp && !grp)) WRGMSG_ON; #endif #ifdef NEED_LOGMSG_FFLUSH fflush(stdout); #endif BFR_VSNPRINTF(); if (!bfr) { #ifdef OPTION_MSGLCK if(!sysblk.msggrp || (sysblk.msggrp && !grp)) WRGMSG_OFF; #endif return; } if ( strlen(bfr) > 10 && SNCMP(bfr,"HHC",3) && (bfr[8] == 'S' || bfr[8] == 'E' || bfr[8] == 'W') ) errmsg = TRUE; #if defined( OPTION_MSGCLR ) if ( !strlen(color) ) { if ( errmsg ) color = "<pnl,color(lightred,black),keep>"; else color = ""; } #else color = ""; #endif // defined( OPTION_MSGCLR ) if ( lvl & MLVL_DEBUG ) { #if defined( OPTION_MSGCLR ) if (strlen(color) > 0 && !sysblk.shutdown && sysblk.panel_init && !sysblk.daemon_mode) MSGBUF(prefix, "%s" MLVL_DEBUG_PRINTF_PATTERN, color, file, line); else #endif MSGBUF(prefix, MLVL_DEBUG_PRINTF_PATTERN, file, line); } else { #if defined( OPTION_MSGCLR ) if (strlen(color) > 0 && !sysblk.shutdown && sysblk.panel_init && !sysblk.daemon_mode) { MSGBUF(prefix, "%s", color ); } #endif // defined( OPTION_MSGCLR ) } if(bfr) { size_t l = strlen(prefix)+strlen(bfr)+256; msgbuf = calloc(1,l); if (msgbuf) { if ( strlen(bfr) > 10 && SNCMP(bfr, "HHC", 3) ) snprintf( msgbuf, l-1, "%s%s", prefix, ( sysblk.emsg & EMSG_TEXT ) ? &bfr[10] : bfr ); else snprintf( msgbuf, l-1, "%s%s", prefix, bfr ); log_write( 0, msgbuf ); free(msgbuf); } free(bfr); } if ( errmsg && !MLVL(DEBUG) ) logmsg("HHC00007" "I" " " HHC00007 "\n", function, file, line); #ifdef NEED_LOGMSG_FFLUSH fflush(stdout); #endif #ifdef OPTION_MSGLCK if(!sysblk.msggrp || (sysblk.msggrp && !grp)) WRGMSG_OFF; #endif log_wakeup(NULL); }