diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c index d3c91545..86625bed 100644 --- a/lib/libwebsockets.c +++ b/lib/libwebsockets.c @@ -922,18 +922,30 @@ lws_ensure_user_space(struct lws *wsi) LWS_VISIBLE void lwsl_emit_stderr(int level, const char *line) { + time_t o_now = time(NULL); + struct tm o_now_time; unsigned long long now; char buf[300]; - int n; + int n, ok = localtime_r(&o_now, &o_now_time) != NULL; buf[0] = '\0'; for (n = 0; n < LLL_COUNT; n++) { if (level != (1 << n)) continue; now = time_in_microseconds() / 100; - sprintf(buf, "[%llu:%04d] %s: ", - (unsigned long long) now / 10000, - (int)(now % 10000), log_level_names[n]); + if (ok) + sprintf(buf, "[%04d/%02d/%02d %02d:%02d:%02d:%04d] %s: ", + o_now_time.tm_year + 1900, + o_now_time.tm_mon, + o_now_time.tm_mday, + o_now_time.tm_hour, + o_now_time.tm_min, + o_now_time.tm_sec, + (int)(now % 10000), log_level_names[n]); + else + sprintf(buf, "[%llu:%04d] %s: ", + (unsigned long long) now / 10000, + (int)(now % 10000), log_level_names[n]); break; }