summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wtaymans@redhat.com>2019-11-19 15:38:09 +0100
committerWim Taymans <wtaymans@redhat.com>2019-11-19 15:38:09 +0100
commitf92775719afcfcf3ef4a341be669e00c0c2a0bb5 (patch)
tree20b004c5b0e88b330a2cd40ff138e50e6d90b593
parent53f93c2bde096feee9846e0d0166a035a741027c (diff)
log: make timestamps configurable
-rw-r--r--spa/include/spa/support/log.h2
-rw-r--r--spa/plugins/support/logger.c7
-rw-r--r--src/pipewire/pipewire.c3
3 files changed, 10 insertions, 2 deletions
diff --git a/spa/include/spa/support/log.h b/spa/include/spa/support/log.h
index 49cbca8b..5007caa4 100644
--- a/spa/include/spa/support/log.h
+++ b/spa/include/spa/support/log.h
@@ -167,6 +167,8 @@ static inline void spa_log_trace_fp (struct spa_log *l, const char *format, ...)
#define SPA_KEY_LOG_COLORS "log.colors" /**< enable colors in the logger */
#define SPA_KEY_LOG_FILE "log.file" /**< log to the specified file instead of
* stderr. */
+#define SPA_KEY_LOG_TIMESTAMP "log.timestamp" /**< log timestamps */
+
#ifdef __cplusplus
} /* extern "C" */
#endif
diff --git a/spa/plugins/support/logger.c b/spa/plugins/support/logger.c
index 0df5b0de..f9197a56 100644
--- a/spa/plugins/support/logger.c
+++ b/spa/plugins/support/logger.c
@@ -56,6 +56,7 @@ struct impl {
unsigned int have_source:1;
unsigned int colors:1;
+ unsigned int timestamp:1;
};
static void
@@ -90,18 +91,20 @@ impl_log_logv(void *object,
vsnprintf(text, sizeof(text), fmt, args);
- if (level >= SPA_LOG_LEVEL_DEBUG) {
+ if (impl->timestamp) {
struct timespec now;
clock_gettime(CLOCK_MONOTONIC_RAW, &now);
size = snprintf(location, sizeof(location), "%s[%s][%09lu.%06lu][%s:%i %s()] %s%s\n",
prefix, levels[level], now.tv_sec & 0x1FFFFFFF, now.tv_nsec / 1000,
strrchr(file, '/') + 1, line, func, text, suffix);
+
} else {
size = snprintf(location, sizeof(location), "%s[%s][%s:%i %s()] %s%s\n",
prefix, levels[level], strrchr(file, '/') + 1, line, func, text, suffix);
}
+
if (SPA_UNLIKELY(do_trace)) {
uint32_t index;
@@ -259,6 +262,8 @@ impl_init(const struct spa_handle_factory *factory,
}
if (info) {
+ if ((str = spa_dict_lookup(info, SPA_KEY_LOG_TIMESTAMP)) != NULL)
+ this->timestamp = (strcmp(str, "true") == 0 || atoi(str) == 1);
if ((str = spa_dict_lookup(info, SPA_KEY_LOG_COLORS)) != NULL)
this->colors = (strcmp(str, "true") == 0 || atoi(str) == 1);
if ((str = spa_dict_lookup(info, SPA_KEY_LOG_LEVEL)) != NULL)
diff --git a/src/pipewire/pipewire.c b/src/pipewire/pipewire.c
index 62b14553..de9c1843 100644
--- a/src/pipewire/pipewire.c
+++ b/src/pipewire/pipewire.c
@@ -351,7 +351,7 @@ SPA_EXPORT
void pw_init(int *argc, char **argv[])
{
const char *str;
- struct spa_dict_item items[3];
+ struct spa_dict_item items[4];
uint32_t n_items;
struct spa_dict info;
struct support *support = &global_support;
@@ -379,6 +379,7 @@ void pw_init(int *argc, char **argv[])
n_items = 0;
items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_LOG_COLORS, "1");
+ items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_LOG_TIMESTAMP, "1");
snprintf(level, sizeof(level), "%d", pw_log_level);
items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_LOG_LEVEL, level);
if ((str = getenv("PIPEWIRE_LOG")) != NULL)