summaryrefslogtreecommitdiff
path: root/utils/log.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils/log.c')
-rw-r--r--utils/log.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/utils/log.c b/utils/log.c
index 1969102d4..9837aa76b 100644
--- a/utils/log.c
+++ b/utils/log.c
@@ -95,7 +95,7 @@ nserror nslog_init(nslog_ensure_t *ensure, int *pargc, char **argv)
/* Subtract the `struct timeval' values X and Y,
storing the result in RESULT.
- Return 1 if the difference is negative, otherwise 0.
+ Return 1 if the difference is negative, otherwise 0.
*/
static int
@@ -122,37 +122,45 @@ timeval_subtract(struct timeval *result, struct timeval *x, struct timeval *y)
return x->tv_sec < y->tv_sec;
}
-const char *nslog_gettime(void)
+/**
+ * Obtain a formatted string suitable for prepending to a log message
+ *
+ * \return formatted string of the time since first log call
+ */
+static const char *nslog_gettime(void)
{
static struct timeval start_tv;
static char buff[32];
struct timeval tv;
- struct timeval now_tv;
+ struct timeval now_tv;
if (!timerisset(&start_tv)) {
- gettimeofday(&start_tv, NULL);
+ gettimeofday(&start_tv, NULL);
}
- gettimeofday(&now_tv, NULL);
+ gettimeofday(&now_tv, NULL);
timeval_subtract(&tv, &now_tv, &start_tv);
- snprintf(buff, sizeof(buff),"(%ld.%06ld)",
+ snprintf(buff, sizeof(buff),"(%ld.%06ld)",
(long)tv.tv_sec, (long)tv.tv_usec);
- return buff;
+ return buff;
}
-void nslog_log(const char *format, ...)
+void nslog_log(const char *file, const char *func, int ln, const char *format, ...)
{
va_list ap;
+ fprintf(logf, "%s %s:%i %s: ", nslog_gettime(), file, ln, func);
+
va_start(ap, format);
- vfprintf(stderr, format, ap);
+ vfprintf(logf, format, ap);
va_end(ap);
+
+ fputc('\n', logf);
}
#endif
-