summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--runtime/rsyslog.c13
-rw-r--r--runtime/rsyslog.h1
-rw-r--r--tools/syslogd.c1
3 files changed, 15 insertions, 0 deletions
diff --git a/runtime/rsyslog.c b/runtime/rsyslog.c
index 95ac23ef..c05119d8 100644
--- a/runtime/rsyslog.c
+++ b/runtime/rsyslog.c
@@ -103,6 +103,19 @@ static rsRetVal dfltErrLogger(uchar *errMsg)
}
+/* set the error log function
+ * rgerhards, 2008-04-18
+ */
+rsRetVal
+rsrtSetErrLogger(rsRetVal (*errLogger)(uchar*))
+{
+ DEFiRet;
+ assert(errLogger != NULL);
+ glblErrLogger = errLogger;
+ RETiRet;
+}
+
+
/* globally initialze the runtime system
* NOTE: this is NOT thread safe and must not be called concurrently. If that
* ever poses a problem, we may use proper mutex calls - not considered needed yet.
diff --git a/runtime/rsyslog.h b/runtime/rsyslog.h
index ad2a543a..61ddd3d9 100644
--- a/runtime/rsyslog.h
+++ b/runtime/rsyslog.h
@@ -314,6 +314,7 @@ extern rsRetVal (*glblErrLogger)(uchar*);
rsRetVal rsrtInit(char **ppErrObj, obj_if_t *pObjIF);
rsRetVal rsrtExit(void);
int rsrtIsInit(void);
+rsRetVal rsrtSetErrLogger(rsRetVal (*errLogger)(uchar*));
#endif /* multi-include protection */
/* vim:set ai:
diff --git a/tools/syslogd.c b/tools/syslogd.c
index f2b18a3d..4327ab7f 100644
--- a/tools/syslogd.c
+++ b/tools/syslogd.c
@@ -2771,6 +2771,7 @@ InitGlobalClasses(void)
/* Intialize the runtime system */
pErrObj = "rsyslog runtime"; /* set in case the runtime errors before setting an object */
CHKiRet(rsrtInit(&pErrObj, &obj));
+ CHKiRet(rsrtSetErrLogger(submitErrMsg)); /* set out error handler */
/* Now tell the system which classes we need ourselfs */
pErrObj = "glbl";