rspamd_logger_t *logger;
GError *err = NULL;
- g_assert (emergency_logger != NULL);
-
if (pool) {
logger = rspamd_mempool_alloc0 (pool, sizeof (rspamd_logger_t));
logger->mtx = rspamd_mempool_get_mutex (pool);
logger->ops.specific = logger->ops.init (logger, cfg, uid, gid, &err);
- if (logger->ops.specific == NULL) {
+ if (emergency_logger && logger->ops.specific == NULL) {
rspamd_common_log_function (emergency_logger, G_LOG_LEVEL_CRITICAL,
"logger", NULL, G_STRFUNC,
"cannot open specific logger: %e", err);
msg_info_main ("libottery prf: %s", ottery_get_impl_name ());
/* Daemonize */
- if (!no_fork && daemon (0, 0) == -1) {
- rspamd_fprintf (stderr, "Cannot daemonize\n");
- exit (-errno);
+ if (!no_fork) {
+ if (daemon (0, 0) == -1) {
+ msg_err_main ("cannot daemonize: %s", strerror (errno));
+ exit (-errno);
+ }
+
+ /* Close emergency logger */
+ rspamd_log_close (rspamd_log_emergency_logger ());
}
/* Write info */