aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configs/logger.conf.sample4
-rw-r--r--main/logger.c16
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) {