[svn-commits] mmichelson: trunk r133448 - /trunk/main/logger.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Thu Jul 24 14:53:38 CDT 2008


Author: mmichelson
Date: Thu Jul 24 14:53:37 2008
New Revision: 133448

URL: http://svn.digium.com/view/asterisk?view=rev&rev=133448
Log:
Print the correct PID in log messages. Prior to
this commit, only the logger thread's PID would
be printed.

(closes issue #13150)
Reported by: atis
Patches:
      log_pid.diff uploaded by putnopvut (license 60)
Tested by: eliel



Modified:
    trunk/main/logger.c

Modified: trunk/main/logger.c
URL: http://svn.digium.com/view/asterisk/trunk/main/logger.c?view=diff&rev=133448&r1=133447&r2=133448
==============================================================================
--- trunk/main/logger.c (original)
+++ trunk/main/logger.c Thu Jul 24 14:53:37 2008
@@ -136,6 +136,7 @@
 	char file[80];
 	int line;
 	char function[80];
+	long process_id;
 	AST_LIST_ENTRY(logmsg) list;
 	char str[0];
 };
@@ -833,7 +834,7 @@
 	return 0;
 }
 
-static void ast_log_vsyslog(int level, const char *file, int line, const char *function, char *str)
+static void ast_log_vsyslog(int level, const char *file, int line, const char *function, char *str, long pid)
 {
 	char buf[BUFSIZ];
 
@@ -844,14 +845,14 @@
 	}
 
 	if (level == __LOG_VERBOSE) {
-		snprintf(buf, sizeof(buf), "VERBOSE[%ld]: %s", (long)GETTID(), str);
+		snprintf(buf, sizeof(buf), "VERBOSE[%ld]: %s", pid, str);
 		level = __LOG_DEBUG;
 	} else if (level == __LOG_DTMF) {
-		snprintf(buf, sizeof(buf), "DTMF[%ld]: %s", (long)GETTID(), str);
+		snprintf(buf, sizeof(buf), "DTMF[%ld]: %s", pid, str);
 		level = __LOG_DEBUG;
 	} else {
 		snprintf(buf, sizeof(buf), "%s[%ld]: %s:%d in %s: %s",
-			 levels[level], (long)GETTID(), file, line, function, str);
+			 levels[level], pid, file, line, function, str);
 	}
 
 	term_strip(buf, buf, strlen(buf) + 1);
@@ -880,7 +881,7 @@
 				continue;
 			/* Check syslog channels */
 			if (chan->type == LOGTYPE_SYSLOG && (chan->logmask & (1 << logmsg->level))) {
-				ast_log_vsyslog(logmsg->level, logmsg->file, logmsg->line, logmsg->function, logmsg->str);
+				ast_log_vsyslog(logmsg->level, logmsg->file, logmsg->line, logmsg->function, logmsg->str, logmsg->process_id);
 			/* Console channels */
 			} else if (chan->type == LOGTYPE_CONSOLE && (chan->logmask & (1 << logmsg->level))) {
 				char linestr[128];
@@ -896,7 +897,7 @@
 				snprintf(buf, sizeof(buf), "[%s] %s[%ld]: %s:%s %s: %s",
 					 logmsg->date,
 					 term_color(tmp1, levels[logmsg->level], colors[logmsg->level], 0, sizeof(tmp1)),
-					 (long)GETTID(),
+					 logmsg->process_id,
 					 term_color(tmp2, logmsg->file, COLOR_BRWHITE, 0, sizeof(tmp2)),
 					 term_color(tmp3, linestr, COLOR_BRWHITE, 0, sizeof(tmp3)),
 					 term_color(tmp4, logmsg->function, COLOR_BRWHITE, 0, sizeof(tmp4)),
@@ -913,7 +914,7 @@
 				
 				/* Print out to the file */
 				res = fprintf(chan->fileptr, "[%s] %s[%ld] %s: %s",
-					      logmsg->date, levels[logmsg->level], (long)GETTID(), logmsg->file, logmsg->str);
+					      logmsg->date, levels[logmsg->level], logmsg->process_id, logmsg->file, logmsg->str);
 				if (res <= 0 && !ast_strlen_zero(logmsg->str)) {
 					fprintf(stderr, "**** Asterisk Logging Error: ***********\n");
 					if (errno == ENOMEM || errno == ENOSPC)
@@ -1151,6 +1152,7 @@
 	logmsg->line = line;
 	ast_copy_string(logmsg->file, file, sizeof(logmsg->file));
 	ast_copy_string(logmsg->function, function, sizeof(logmsg->function));
+	logmsg->process_id = (long) GETTID();
 
 	/* If the logger thread is active, append it to the tail end of the list - otherwise skip that step */
 	if (logthread != AST_PTHREADT_NULL) {




More information about the svn-commits mailing list