Send errlog output to stderr rather than stdout, from J Lewis Muir.
This commit is contained in:
@@ -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));
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user