diff options
-rw-r--r-- | configs/logger.conf.sample | 4 | ||||
-rw-r--r-- | main/logger.c | 16 |
2 files changed, 9 insertions, 11 deletions
diff --git a/configs/logger.conf.sample b/configs/logger.conf.sample index f2ff0ea7e..c28c302a8 100644 --- a/configs/logger.conf.sample +++ b/configs/logger.conf.sample @@ -46,6 +46,10 @@ ; ; Special filename "console" represents the system console ; +; Filenams can either be relative to the standard Asterisk log directory +; (see 'astlogdir' in asterisk.conf), or absolute paths that begin with +; '/'. +; ; We highly recommend that you DO NOT turn on debug mode if you are simply ; running a production system. Debug mode turns on a LOT of extra messages, ; most of which you are unlikely to understand without an understanding of diff --git a/main/logger.c b/main/logger.c index 0d1ef4b71..e1913eed3 100644 --- a/main/logger.c +++ b/main/logger.c @@ -257,18 +257,12 @@ static struct logchannel *make_logchannel(char *channel, char *components, int l snprintf(chan->filename, sizeof(chan->filename), "%s", channel); openlog("asterisk", LOG_PID, chan->facility); } else { - if (channel[0] == '/') { - if(!ast_strlen_zero(hostname)) { - snprintf(chan->filename, sizeof(chan->filename) - 1,"%s.%s", channel, hostname); - } else { - ast_copy_string(chan->filename, channel, sizeof(chan->filename)); - } - } - - if(!ast_strlen_zero(hostname)) { - snprintf(chan->filename, sizeof(chan->filename), "%s/%s.%s",(char *)ast_config_AST_LOG_DIR, channel, hostname); + if (!ast_strlen_zero(hostname)) { + snprintf(chan->filename, sizeof(chan->filename), "%s/%s.%s", + channel[0] != '/' ? ast_config_AST_LOG_DIR : "", channel, hostname); } else { - snprintf(chan->filename, sizeof(chan->filename), "%s/%s", (char *)ast_config_AST_LOG_DIR, channel); + snprintf(chan->filename, sizeof(chan->filename), "%s/%s", + channel[0] != '/' ? ast_config_AST_LOG_DIR : "", channel); } chan->fileptr = fopen(chan->filename, "a"); if (!chan->fileptr) { |