For fatal errors, use slapi_log_error_ex(). In many cases, you might return -1 after you log the message to indicate to Directory Server that a serious problem has occurred.
#include "slapi-plugin.h"
#include "example-com-error-ids.h" /* example.com unique
error IDs file */
int
foobar(Slapi_PBlock * pb)
{
char * error_cause;
int apocalypse = 1; /* Expect the worst. */
/* ... */
if (apocalypse) { /* Server to crash soon */
slapi_log_error_ex(
EXCOM_SERVER_MORIBUND, /* Unique error ID */
SLAPI_LOG_NO_MSGID,
SLAPI_LOG_NO_CONNID,
SLAPI_LOG_NO_OPID,
"example.com: foobar in baz plug-in",
"cannot write to file system: %s\n",
error_cause
);
return -1;
}
return 0;
}
In this example, foobar() logs an error as Directory Server is about to crash.
If the plug-ins are internationalized, use macros, not literal strings, for the last two arguments to slapi_log_*_ex() functions.