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;
}