[Asterisk-cvs] asterisk logger.c,1.43,1.44

markster at lists.digium.com markster at lists.digium.com
Sat Sep 4 23:45:09 CDT 2004


Update of /usr/cvsroot/asterisk
In directory mongoose.digium.com:/tmp/cvs-serv29768

Modified Files:
	logger.c 
Log Message:
Merge Brian West's append hostname patch (bug #2372)


Index: logger.c
===================================================================
RCS file: /usr/cvsroot/asterisk/logger.c,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -d -r1.43 -r1.44
--- logger.c	20 Jul 2004 15:10:18 -0000	1.43
+++ logger.c	5 Sep 2004 03:48:05 -0000	1.44
@@ -58,6 +58,8 @@
 	struct msglist *next;
 } *list = NULL, *last = NULL;
 
+static char hostname[256];
+
 struct logchannel {
 	int logmask;
 	int facility; /* syslog */
@@ -167,10 +169,19 @@
 		    chan->syslog = 1;
 		    openlog("asterisk", LOG_PID, chan->facility);
 		} else {
-			if (channel[0] == '/') 
-				strncpy(chan->filename, channel, sizeof(chan->filename) - 1);
-			else
+			if (channel[0] == '/') {
+				if(!ast_strlen_zero(hostname)) { 
+					snprintf(chan->filename, sizeof(chan->filename) - 1,"%s.%s", channel, hostname);
+				} else {
+					strncpy(chan->filename, channel, sizeof(chan->filename) - 1);
+				}
+			}		  
+			
+			if(!ast_strlen_zero(hostname)) {
+				snprintf(chan->filename, sizeof(chan->filename), "%s/%s.%s",(char *)ast_config_AST_LOG_DIR, channel, hostname);
+			} else {
 				snprintf(chan->filename, sizeof(chan->filename), "%s/%s", (char *)ast_config_AST_LOG_DIR, channel);
+			}
 			chan->fileptr = fopen(chan->filename, "a");
 			if (!chan->fileptr) {
 				/* Can't log here, since we're called with a lock */
@@ -199,20 +210,31 @@
 	}
 	logchannels = NULL;
 	ast_mutex_unlock(&loglock);
-
+	
 	/* close syslog */
 	closelog();
-
+	
 	cfg = ast_load("logger.conf");
 	
 	/* If no config file, we're fine */
 	if (!cfg)
 	    return;
-
+	
 	ast_mutex_lock(&loglock);
+	if ((s = ast_variable_retrieve(cfg, "general", "appendhostname"))) {
+		if(ast_true(s)) {
+			if(gethostname(hostname, sizeof(hostname))) {
+				strncpy(hostname, "unknown", sizeof(hostname)-1);
+				ast_log(LOG_WARNING, "What box has no hostname???\n");
+			}
+		} else
+			hostname[0] = '\0';
+	} else
+		hostname[0] = '\0';
 	if ((s = ast_variable_retrieve(cfg, "general", "dateformat"))) {
 		strncpy(dateformat, s, sizeof(dateformat) - 1);
-	}
+	} else
+		strncpy(dateformat, "%b %e %T", sizeof(dateformat) - 1);
 	var = ast_variable_browse(cfg, "logfiles");
 	while(var) {
 		chan = make_logchannel(var->name, var->value, var->lineno);




More information about the svn-commits mailing list