Changeset: c07dec74e930 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c07dec74e930
Modified Files:
        gdk/gdk_private.h
        gdk/gdk_tracer.c
        gdk/gdk_utils.c
Branch: Jun2020
Log Message:

Write timestamp in error message when not writing to pipe (merovingian).


diffs (63 lines):

diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -168,6 +168,8 @@ gdk_return GDKssort_rev(void *restrict h
 gdk_return GDKssort(void *restrict h, void *restrict t, const void *restrict 
base, size_t n, int hs, int ts, int tpe)
        __attribute__((__warn_unused_result__))
        __attribute__((__visibility__("hidden")));
+void GDKtracer_init(void)
+       __attribute__((__visibility__("hidden")));
 gdk_return GDKunlink(int farmid, const char *dir, const char *nme, const char 
*extension)
        __attribute__((__visibility__("hidden")));
 void HASHfree(BAT *b)
diff --git a/gdk/gdk_tracer.c b/gdk/gdk_tracer.c
--- a/gdk/gdk_tracer.c
+++ b/gdk/gdk_tracer.c
@@ -9,6 +9,7 @@
 #include "monetdb_config.h"
 #include "gdk.h"
 #include "gdk_tracer.h"
+#include "gdk_private.h"
 
 #define DEFAULT_ADAPTER BASIC
 #define DEFAULT_LOG_LEVEL M_ERROR
@@ -414,6 +415,17 @@ GDKtracer_reset_adapter(void)
        return GDK_SUCCEED;
 }
 
+static bool add_ts;            /* add timestamp to error message to stderr */
+
+void
+GDKtracer_init(void)
+{
+#ifdef _MSC_VER
+       add_ts = GetFileType(GetStdHandle(STD_ERROR_HANDLE)) != FILE_TYPE_PIPE;
+#else
+       add_ts = isatty(2) || lseek(2, 0, SEEK_CUR) != (off_t) -1 || errno != 
ESPIPE;
+#endif
+}
 
 void
 GDKtracer_log(const char *file, const char *func, int lineno,
@@ -486,7 +498,9 @@ GDKtracer_log(const char *file, const ch
        }
 
        if (level == M_CRITICAL || level == M_ERROR || level == M_WARNING) {
-               fprintf(stderr, "#%s: %s: %s%s%s%s\n",
+               fprintf(stderr, "#%s%s%s: %s: %s%s%s%s\n",
+                       add_ts ? ts : "",
+                       add_ts ? ": " : "",
                        MT_thread_getname(), func, GDKERROR,
                        msg, syserr ? ": " : "",
                        syserr ? syserr : "");
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -799,6 +799,7 @@ GDKinit(opt *set, int setlen)
                /* BBP was locked by BBPexit() */
                BBPunlock();
        }
+       GDKtracer_init();
        errno = 0;
        if (!GDKinmemory() && !GDKenvironment(dbpath))
                return GDK_FAIL;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to