log.c: message format

- Log-level name (INFO/ERROR/…) should be in the first column, so that
  filtering by log-level is maximally trivial.
- Use 2-digit year. 4-digit year is useless, logs don't survive for
  decades without context.

Before:
    2018/07/05 17:49:41 INFO  27596 on_process_exit:393: foo
After:
    INFO  180705.174941 27596 on_process_exit:393: foo
This commit is contained in:
Justin M. Keyes
2018-07-11 22:48:53 +02:00
parent ddea519542
commit 4d6a1e5566

View File

@@ -260,25 +260,25 @@ static bool v_do_log_to_file(FILE *log_file, int log_level,
}; };
assert(log_level >= DEBUG_LOG_LEVEL && log_level <= ERROR_LOG_LEVEL); assert(log_level >= DEBUG_LOG_LEVEL && log_level <= ERROR_LOG_LEVEL);
// format current timestamp in local time // Format the timestamp.
struct tm local_time; struct tm local_time;
if (os_localtime(&local_time) == NULL) { if (os_localtime(&local_time) == NULL) {
return false; return false;
} }
char date_time[20]; char date_time[20];
if (strftime(date_time, sizeof(date_time), "%Y/%m/%d %H:%M:%S", if (strftime(date_time, sizeof(date_time), "%y%m%d.%H%M%S",
&local_time) == 0) { &local_time) == 0) {
return false; return false;
} }
// print the log message prefixed by the current timestamp and pid // Print the log message.
int64_t pid = os_get_pid(); int64_t pid = os_get_pid();
int rv = (line_num == -1 || func_name == NULL) int rv = (line_num == -1 || func_name == NULL)
? fprintf(log_file, "%s %s %" PRId64 " %s", date_time, ? fprintf(log_file, "%s %s %" PRId64 " %s", log_levels[log_level],
log_levels[log_level], pid, date_time, pid,
(context == NULL ? "?:" : context)) (context == NULL ? "?:" : context))
: fprintf(log_file, "%s %s %" PRId64 " %s%s:%d: ", date_time, : fprintf(log_file, "%s %s %" PRId64 " %s%s:%d: ", log_levels[log_level],
log_levels[log_level], pid, date_time, pid,
(context == NULL ? "" : context), (context == NULL ? "" : context),
func_name, line_num); func_name, line_num);
if (rv < 0) { if (rv < 0) {