diff --git a/main/logger.c b/main/logger.c index fdac22c..12410ca 100644 --- a/main/logger.c +++ b/main/logger.c @@ -315,7 +315,6 @@ static struct logchannel *make_logchannel(const char *channel, const char *compo chan->type = LOGTYPE_SYSLOG; ast_copy_string(chan->filename, channel, sizeof(chan->filename)); - openlog("asterisk", LOG_PID, chan->facility); } else { const char *log_dir_prefix = ""; const char *log_dir_separator = ""; @@ -1299,7 +1298,7 @@ static struct sigaction handle_SIGXFSZ = { .sa_flags = SA_RESTART, }; -static void ast_log_vsyslog(struct logmsg *msg) +static void ast_log_vsyslog(struct logmsg *msg, int facility) { char buf[BUFSIZ]; int syslog_level = ast_syslog_priority_from_loglevel(msg->level); @@ -1317,6 +1316,8 @@ static void ast_log_vsyslog(struct logmsg *msg) return; } + syslog_level = LOG_MAKEPRI(facility, syslog_level); + snprintf(buf, sizeof(buf), "%s[%d]%s: %s:%d in %s: %s", levels[msg->level], msg->lwp, call_identifier_str, msg->file, msg->line, msg->function, msg->message); @@ -1402,7 +1403,7 @@ static void logger_print_normal(struct logmsg *logmsg) /* Check syslog channels */ if (chan->type == LOGTYPE_SYSLOG && (chan->logmask & (1 << logmsg->level))) { - ast_log_vsyslog(logmsg); + ast_log_vsyslog(logmsg, chan->facility); /* Console channels */ } else if (chan->type == LOGTYPE_CONSOLE && (chan->logmask & (1 << logmsg->level))) { char linestr[128];