aboutsummaryrefslogtreecommitdiff
path: root/src/util/common_logging.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-06-23 22:28:37 +0000
committerChristian Grothoff <christian@grothoff.org>2012-06-23 22:28:37 +0000
commita14f9f0fbd4f2226d8ccef8de5d42a4abc7b82fe (patch)
tree76c4d5a1d51ef161f0c8aea3ab94b5464606d02a /src/util/common_logging.c
parent4beaf8200aa658c15d2b138d1754983a7eb253e3 (diff)
-LRN: Support [] (formatted to be pid) in logfile names:
I needed it for mesh debugging. Wrote this patch before your log rotation changes, and had to hastily adapt it after them, so i'm not sure it actually works. Did some quick tests on it, and it appears to be working, so i'll just send it to you as is, and see how it turns out.
Diffstat (limited to 'src/util/common_logging.c')
-rw-r--r--src/util/common_logging.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/util/common_logging.c b/src/util/common_logging.c
index 6c3dda9bc8..8ba955dea7 100644
--- a/src/util/common_logging.c
+++ b/src/util/common_logging.c
@@ -336,11 +336,22 @@ setup_log_file (const struct tm *tm)
int altlog_fd;
int dup_return;
FILE *altlog;
+ char *leftsquare;
if (NULL == log_file_name)
return GNUNET_SYSERR;
if (0 == strftime (fn, sizeof (fn), log_file_name, tm))
return GNUNET_SYSERR;
+ leftsquare = strrchr (fn, '[');
+ if ( (NULL != leftsquare) && (']' == leftsquare[1]) )
+ {
+ char *logfile_copy = GNUNET_strdup (fn);
+ logfile_copy[leftsquare - fn] = '\0';
+ logfile_copy[leftsquare - fn + 1] = '\0';
+ snprintf (fn, PATH_MAX, "%s%d%s",
+ logfile_copy, getpid (), &logfile_copy[leftsquare - fn + 2]);
+ GNUNET_free (logfile_copy);
+ }
if (0 == strcmp (fn, last_fn))
return GNUNET_OK; /* no change */
log_rotate (last_fn);