diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-06-23 22:28:37 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-06-23 22:28:37 +0000 |
commit | a14f9f0fbd4f2226d8ccef8de5d42a4abc7b82fe (patch) | |
tree | 76c4d5a1d51ef161f0c8aea3ab94b5464606d02a /src/util/common_logging.c | |
parent | 4beaf8200aa658c15d2b138d1754983a7eb253e3 (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.c | 11 |
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); |