diff --git a/src/libCom/log/iocLog.c b/src/libCom/log/iocLog.c index c6c707c30..e62da2050 100644 --- a/src/libCom/log/iocLog.c +++ b/src/libCom/log/iocLog.c @@ -18,7 +18,6 @@ #define epicsExportSharedSymbols #include "envDefs.h" -#include "errlog.h" #include "logClient.h" #include "iocLog.h" @@ -90,9 +89,6 @@ static logClientId iocLogClientInit (void) return NULL; } id = logClientCreate (addr, port); - if (id != NULL) { - errlogAddListener ( logClientSendMessage, id ); - } return id; } @@ -139,13 +135,3 @@ logClientId epicsShareAPI logClientInit (void) { return iocLogClientInit (); } - -/* - * logClientSendMessage (); deprecated - */ -void logClientSendMessage ( logClientId id, const char * message ) -{ - if ( !iocLogDisable ) { - logClientSend (id, message); - } -} diff --git a/src/libCom/log/logClient.c b/src/libCom/log/logClient.c index ee1c9209f..99ee671d9 100644 --- a/src/libCom/log/logClient.c +++ b/src/libCom/log/logClient.c @@ -24,6 +24,8 @@ #define epicsExportSharedSymbols #include "dbDefs.h" #include "epicsEvent.h" +#include "iocLog.h" +#include "errlog.h" #include "epicsMutex.h" #include "epicsThread.h" #include "epicsTime.h" @@ -152,6 +154,8 @@ static void logClientDestroy (logClientId id) return; } + errlogRemoveListeners ( logClientSendMessage, (void *) pClient ); + logClientClose ( pClient ); epicsMutexDestroy ( pClient->mutex ); @@ -545,6 +549,8 @@ logClientId epicsShareAPI logClientCreate ( pClient->name, LOG_SERVER_CREATE_CONNECT_SYNC_TIMEOUT ); } + errlogAddListener ( logClientSendMessage, (void *) pClient ); + return (void *) pClient; } @@ -573,6 +579,16 @@ void epicsShareAPI logClientShow (logClientId id, unsigned level) } } +/* + * logClientSendMessage (); deprecated + */ +void logClientSendMessage ( logClientId id, const char * message ) +{ + if ( !iocLogDisable ) { + logClientSend (id, message); + } +} + /* * iocLogPrefix() */