From af3ba2cd50b836a7d43b0b9134abf93b6c962ead Mon Sep 17 00:00:00 2001 From: Osier Yang Date: Mon, 1 Nov 2010 12:17:14 +0800 Subject: [PATCH] util: Add helper function to build timestamp string * src/util/util.h * src/util/util.c * src/libvirt_private.syms --- src/libvirt_private.syms | 1 + src/util/util.c | 28 ++++++++++++++++++++++++++++ src/util/util.h | 3 +++ 3 files changed, 32 insertions(+) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index cf64bd3661..bd77a34ef9 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -779,6 +779,7 @@ virStrToLong_ui; virStrToLong_ull; virStrcpy; virStrncpy; +virTimestamp; # uuid.h diff --git a/src/util/util.c b/src/util/util.c index 2632fe701f..f7c7d3253c 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -38,6 +38,7 @@ #include #include #include +#include #if HAVE_MMAP # include #endif @@ -2912,3 +2913,30 @@ int virBuildPathInternal(char **path, ...) return ret; } + +/** + * virTimestamp: + * + * Return an allocated string containing the current date and time, + * followed by ": ". Return NULL on allocation failure. + */ +char * +virTimestamp(void) +{ + struct timeval cur_time; + struct tm time_info; + char timestr[100]; + char *timestamp; + + gettimeofday(&cur_time, NULL); + localtime_r(&cur_time.tv_sec, &time_info); + + strftime(timestr, sizeof(timestr), "%Y-%m-%d %H:%M:%S", &time_info); + + if (virAsprintf(×tamp, "%s.%03d: ", + timestr, (int) cur_time.tv_usec / 1000) < 0) { + return NULL; + } + + return timestamp; +} diff --git a/src/util/util.h b/src/util/util.h index 5de4fd67d4..a240d8791c 100644 --- a/src/util/util.h +++ b/src/util/util.h @@ -160,6 +160,7 @@ int virFileOpenTtyAt(const char *ptmx, char* virFilePid(const char *dir, const char *name); + int virFileWritePidPath(const char *path, pid_t pid) ATTRIBUTE_RETURN_CHECK; int virFileWritePid(const char *dir, @@ -277,4 +278,6 @@ void virFileWaitForDevices(void); # define virBuildPath(path, ...) virBuildPathInternal(path, __VA_ARGS__, NULL) int virBuildPathInternal(char **path, ...) ATTRIBUTE_SENTINEL; +char *virTimestamp(void); + #endif /* __VIR_UTIL_H__ */ -- GitLab