From 9cd14f0cc4d3d61651a4bf256fcb9947a17565e8 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Thu, 10 Jul 2008 18:04:10 +0000 Subject: [PATCH] Send errlog output to stderr rather than stdout, from J Lewis Muir. --- src/libCom/error/errSymLib.c | 8 ++++---- src/libCom/error/errlog.c | 28 +++++++++++++++------------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/libCom/error/errSymLib.c b/src/libCom/error/errSymLib.c index 285cc9bb7..cb76ed2fe 100644 --- a/src/libCom/error/errSymLib.c +++ b/src/libCom/error/errSymLib.c @@ -79,12 +79,12 @@ int epicsShareAPI errSymBld() for (i = 0; i < errSymTbl->nsymbols; i++, errArray++) { modnum = errArray->errNum >> 16; if (modnum < 501) { - printf("errSymBld: ERROR - Module number in errSymTbl < 501 was Module=%lx Name=%s\n", + fprintf(stderr, "errSymBld: ERROR - Module number in errSymTbl < 501 was Module=%lx Name=%s\n", errArray->errNum, errArray->name); continue; } if ((errSymbolAdd(errArray->errNum, errArray->name)) <0 ) { - printf("errSymBld: ERROR - errSymbolAdd() failed \n"); + fprintf(stderr, "errSymBld: ERROR - errSymbolAdd() failed \n"); continue; } } @@ -296,8 +296,8 @@ void epicsShareAPI errSymTestPrint(long errNum) modnum = (unsigned short) (errNum >> 16); errnum = (unsigned short) (errNum & 0xffff); if (modnum < 501) { - printf("Usage: errSymTestPrint(long errNum) \n"); - printf("errSymTestPrint: module number < 501 \n"); + fprintf(stderr, "Usage: errSymTestPrint(long errNum) \n"); + fprintf(stderr, "errSymTestPrint: module number < 501 \n"); return; } errSymLookup(errNum, message, sizeof(message)); diff --git a/src/libCom/error/errlog.c b/src/libCom/error/errlog.c index 49f44e498..9abf69094 100644 --- a/src/libCom/error/errlog.c +++ b/src/libCom/error/errlog.c @@ -126,9 +126,9 @@ epicsShareFunc int errlogPrintf( const char *pFormat, ...) errlogInit(0); if(pvtData.atExit || (isOkToBlock && pvtData.toConsole)) { va_start(pvar, pFormat); - vfprintf(stdout,pFormat,pvar); + vfprintf(stderr,pFormat,pvar); va_end (pvar); - fflush(stdout); + fflush(stderr); } va_start(pvar, pFormat); nchar = errlogVprintf(pFormat,pvar); @@ -217,11 +217,11 @@ epicsShareFunc int errlogSevPrintf( if(pvtData.sevToLog>severity) return(0); isOkToBlock = epicsThreadIsOkToBlock(); if(pvtData.atExit || (isOkToBlock && pvtData.toConsole)) { - fprintf(stdout,"sevr=%s ",errlogGetSevEnumString(severity)); + fprintf(stderr,"sevr=%s ",errlogGetSevEnumString(severity)); va_start(pvar, pFormat); - vfprintf(stdout,pFormat,pvar); + vfprintf(stderr,pFormat,pvar); va_end (pvar); - fflush(stdout); + fflush(stderr); } va_start(pvar, pFormat); nchar = errlogSevVprintf(severity,pFormat,pvar); @@ -315,7 +315,9 @@ epicsShareFunc void epicsShareAPI errlogRemoveListener( plistenerNode = (listenerNode *)ellNext(&plistenerNode->node); } if(!pvtData.atExit) epicsMutexUnlock(pvtData.listenerLock); - if(!plistenerNode) printf("errlogRemoveListener did not find listener\n"); + if(!plistenerNode) { + fprintf(stderr, "errlogRemoveListener did not find listener\n"); + } } epicsShareFunc int epicsShareAPI eltc(int yesno) @@ -346,13 +348,13 @@ epicsShareFunc void errPrintf(long status, const char *pFileName, errSymLookup(status,name,sizeof(name)); } if(pvtData.atExit || (isOkToBlock && pvtData.toConsole)) { - if(pFileName) fprintf(stdout, + if(pFileName) fprintf(stderr, "filename=\"%s\" line number=%d\n",pFileName, lineno); - if(status>0) fprintf(stdout,"%s ",name); + if(status>0) fprintf(stderr,"%s ",name); va_start (pvar, pformat); - vfprintf(stdout,pformat,pvar); + vfprintf(stderr,pformat,pvar); va_end (pvar); - fflush(stdout); + fflush(stderr); } if(pvtData.atExit) return; pnext = msgbufGetFree(isOkToBlock); @@ -484,8 +486,8 @@ LOCAL void errlogThread(void) if(pvtData.atExit) break; epicsMutexMustLock(pvtData.listenerLock); if(pvtData.toConsole && !noConsoleMessage) { - fprintf(stdout,"%s",pmessage); - fflush(stdout); + fprintf(stderr,"%s",pmessage); + fflush(stderr); } plistenerNode = (listenerNode *)ellFirst(&pvtData.listenerList); while(plistenerNode) { @@ -595,7 +597,7 @@ LOCAL void msgbufFreeSend() epicsMutexMustLock(pvtData.msgQueueLock); pnextSend = (msgNode *)ellFirst(&pvtData.msgQueue); if(!pnextSend) { - printf("errlog: msgbufFreeSend logic error\n"); + fprintf(stderr, "errlog: msgbufFreeSend logic error\n"); epicsThreadSuspendSelf(); } ellDelete(&pvtData.msgQueue,&pnextSend->node);