diff --git a/common/utils/T/tracer/logger/Makefile b/common/utils/T/tracer/logger/Makefile
index 4e67dce3ad5707cac030d2e1f3d24b836f5ed64d..18f70e0bc56b303f1ed36d2fae81a12740687bfd 100644
--- a/common/utils/T/tracer/logger/Makefile
+++ b/common/utils/T/tracer/logger/Makefile
@@ -1,7 +1,7 @@
 CC=gcc
 CFLAGS=-Wall -g -pthread -I..
 
-OBJS=logger.o textlog.o framelog.o ttilog.o
+OBJS=logger.o textlog.o framelog.o ttilog.o timelog.o
 
 logger.a: $(OBJS)
 	ar cr logger.a $(OBJS)
diff --git a/common/utils/T/tracer/logger/logger.h b/common/utils/T/tracer/logger/logger.h
index f6905e153da937ca8be197d7931718c424f9ef71..a3c09b2c23acb60a1012a2d886a9eb666c3ebae8 100644
--- a/common/utils/T/tracer/logger/logger.h
+++ b/common/utils/T/tracer/logger/logger.h
@@ -10,6 +10,7 @@ logger *new_textlog(void *event_handler, void *database,
 logger *new_ttilog(void *event_handler, void *database,
     char *event_name, char *frame_varname, char *subframe_varname,
     char *data_varname, int convert_to_dB);
+logger *new_timelog(void *event_handler, void *database, char *event_name);
 
 #include "view/view.h"
 
diff --git a/common/utils/T/tracer/logger/timelog.c b/common/utils/T/tracer/logger/timelog.c
new file mode 100644
index 0000000000000000000000000000000000000000..5dadad8c27516c7d7d772448693de278407fc373
--- /dev/null
+++ b/common/utils/T/tracer/logger/timelog.c
@@ -0,0 +1,37 @@
+#include "logger.h"
+#include "logger_defs.h"
+#include "event.h"
+#include "database.h"
+#include "handler.h"
+#include <stdlib.h>
+#include <string.h>
+
+struct timelog {
+  struct logger common;
+};
+
+static void _event(void *p, event e)
+{
+  struct timelog *l = p;
+  int i;
+
+  for (i = 0; i < l->common.vsize; i++)
+    l->common.v[i]->append(l->common.v[i], e.sending_time);
+}
+
+logger *new_timelog(event_handler *h, void *database, char *event_name)
+{
+  struct timelog *ret;
+  int event_id;
+
+  ret = calloc(1, sizeof(struct timelog)); if (ret == NULL) abort();
+
+  ret->common.event_name = strdup(event_name);
+  if (ret->common.event_name == NULL) abort();
+
+  event_id = event_id_from_name(database, event_name);
+
+  ret->common.handler_id = register_handler_function(h,event_id,_event,ret);
+
+  return ret;
+}