From 92f71534fd208b67bd972b9decb2c394107cf591 Mon Sep 17 00:00:00 2001
From: Richard Mudgett <rmudgett@digium.com>
Date: Wed, 17 Oct 2018 19:34:37 -0500
Subject: [PATCH] logger.c: Fix default console logging when no logger.conf
 available.

Default logging was not setup correctly when there was no logger.conf.
This resulted in many expected log messages not actually getting out to
the console.

Change-Id: I542e61c03b2f630ff5327f9de5641d776c6fa70c
---
 main/logger.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/main/logger.c b/main/logger.c
index 89a40f020b..20411ce247 100644
--- a/main/logger.c
+++ b/main/logger.c
@@ -423,7 +423,8 @@ static struct logchannel *make_logchannel(const char *channel, const char *compo
 	return chan;
 }
 
-/* \brief Read config, setup channels.
+/*!
+ * \brief Read config, setup channels.
  * \param locked The logchannels list is locked and this is a reload
  * \param altconf Alternate configuration file to read.
  *
@@ -471,12 +472,11 @@ static int init_logger_chain(int locked, const char *altconf)
 
 	/* If no config file, we're fine, set default options. */
 	if (!cfg) {
-		if (!(chan = ast_calloc(1, sizeof(*chan) + 1))) {
-			fprintf(stderr, "Failed to initialize default logging\n");
+		chan = make_logchannel("console", "error,warning,notice,verbose", 0, 0);
+		if (!chan) {
+			fprintf(stderr, "ERROR: Failed to initialize default logging\n");
 			return -1;
 		}
-		chan->type = LOGTYPE_CONSOLE;
-		chan->logmask = (1 << __LOG_WARNING) | (1 << __LOG_NOTICE) | (1 << __LOG_ERROR);
 
 		if (!locked) {
 			AST_RWLIST_WRLOCK(&logchannels);
@@ -553,7 +553,8 @@ static int init_logger_chain(int locked, const char *altconf)
 	}
 	var = ast_variable_browse(cfg, "logfiles");
 	for (; var; var = var->next) {
-		if (!(chan = make_logchannel(var->name, var->value, var->lineno, 0))) {
+		chan = make_logchannel(var->name, var->value, var->lineno, 0);
+		if (!chan) {
 			/* Print error message directly to the consoles since the lock is held
 			 * and we don't want to unlock with the list partially built */
 			ast_console_puts_mutable("ERROR: Unable to create log channel '", __LOG_ERROR);
-- 
GitLab