aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-07-24 19:55:12 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-07-24 19:55:12 +0000
commit66a12c1bd04d84062ad94a1014f85bddde319f87 (patch)
treeedb22d5fc6f1690806bbbc748d572cb622212b28 /main
parente474394dfbe9adfadc6673b9bde871957e73f61f (diff)
Merged revisions 133448 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r133448 | mmichelson | 2008-07-24 14:53:37 -0500 (Thu, 24 Jul 2008) | 12 lines 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 ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@133449 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r--main/logger.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/main/logger.c b/main/logger.c
index 284b12cff..0a3d872ce 100644
--- a/main/logger.c
+++ b/main/logger.c
@@ -136,6 +136,7 @@ struct logmsg {
char file[80];
int line;
char function[80];
+ long process_id;
AST_LIST_ENTRY(logmsg) list;
char str[0];
};
@@ -745,7 +746,7 @@ static int handle_SIGXFSZ(int sig)
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];
@@ -756,14 +757,14 @@ static void ast_log_vsyslog(int level, const char *file, int line, const char *f
}
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);
@@ -792,7 +793,7 @@ static void logger_print_normal(struct logmsg *logmsg)
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];
@@ -808,7 +809,7 @@ static void logger_print_normal(struct logmsg *logmsg)
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)),
@@ -825,7 +826,7 @@ static void logger_print_normal(struct logmsg *logmsg)
/* 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)
@@ -1063,6 +1064,7 @@ void ast_log(int level, const char *file, int line, const char *function, const
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) {