Create log timestamp string from log entry data

This commit is contained in:
practicalswift 2018-02-02 10:35:41 +10:30 committed by Rusty Russell
parent 3696e1b607
commit ebef98d8be
3 changed files with 13 additions and 7 deletions

View File

@ -35,6 +35,7 @@ struct log_book {
void (*print)(const char *prefix,
enum log_level level,
bool continued,
const struct timeabs *time,
const char *str, void *arg);
void *print_arg;
enum log_level print_level;
@ -51,14 +52,13 @@ struct log {
static void log_default_print(const char *prefix,
enum log_level level,
bool continued,
const struct timeabs *time,
const char *str, void *arg)
{
struct timeval tv;
gettimeofday(&tv, NULL);
char iso8601_msec_fmt[sizeof("YYYY-mm-ddTHH:MM:SS.%03dZ")];
strftime(iso8601_msec_fmt, sizeof(iso8601_msec_fmt), "%FT%T.%%03dZ", gmtime(&tv.tv_sec));
strftime(iso8601_msec_fmt, sizeof(iso8601_msec_fmt), "%FT%T.%%03dZ", gmtime(&time->ts.tv_sec));
char iso8601_s[sizeof("YYYY-mm-ddTHH:MM:SS.nnnZ")];
snprintf(iso8601_s, sizeof(iso8601_s), iso8601_msec_fmt, (int) tv.tv_usec / 1000);
snprintf(iso8601_s, sizeof(iso8601_s), iso8601_msec_fmt, (int) time->ts.tv_nsec / 1000000);
if (!continued) {
printf("%s %s %s\n", iso8601_s, prefix, str);
@ -162,6 +162,7 @@ void set_log_outfn_(struct log_book *lr,
void (*print)(const char *prefix,
enum log_level level,
bool continued,
const struct timeabs *time,
const char *str, void *arg),
void *arg)
{
@ -227,7 +228,7 @@ void logv(struct log *log, enum log_level level, const char *fmt, va_list ap)
l->log = tal_vfmt(l, fmt, ap);
if (level >= log->lr->print_level)
log->lr->print(log->prefix, level, false, l->log,
log->lr->print(log->prefix, level, false, &l->time, l->log,
log->lr->print_arg);
add_entry(log, l);
@ -247,7 +248,7 @@ void log_io(struct log *log, bool in, const void *data, size_t len)
char *hex = tal_arr(l, char, strlen(dir) + hex_str_size(len));
strcpy(hex, dir);
hex_encode(data, len, hex + strlen(dir), hex_str_size(len));
log->lr->print(log->prefix, LOG_IO, false, l->log,
log->lr->print(log->prefix, LOG_IO, false, &l->time, l->log,
log->lr->print_arg);
tal_free(hex);
}
@ -269,7 +270,7 @@ void logv_add(struct log *log, const char *fmt, va_list ap)
add_entry(log, l);
if (l->level >= log->lr->print_level)
log->lr->print(log->prefix, l->level, true, l->log + oldlen,
log->lr->print(log->prefix, l->level, true, &l->time, l->log + oldlen,
log->lr->print_arg);
}
@ -410,6 +411,7 @@ static void show_log_prefix(char buf[OPT_SHOW_LEN], const struct log *log)
static void log_to_file(const char *prefix,
enum log_level level,
bool continued,
const struct timeabs *time,
const char *str,
FILE *logf)
{

View File

@ -2,6 +2,7 @@
#define LIGHTNING_LIGHTNINGD_LOG_H
#include "config.h"
#include <ccan/tal/tal.h>
#include <ccan/time/time.h>
#include <ccan/typesafe_cb/typesafe_cb.h>
#include <common/type_to_string.h>
#include <stdarg.h>
@ -54,12 +55,14 @@ const char *log_prefix(const struct log *log);
const char *, \
enum log_level, \
bool, \
const struct timeabs *, \
const char *), (arg))
void set_log_outfn_(struct log_book *lr,
void (*print)(const char *prefix,
enum log_level level,
bool continued,
const struct timeabs *time,
const char *str, void *arg),
void *arg);

View File

@ -697,6 +697,7 @@ send_error:
static void copy_to_parent_log(const char *prefix,
enum log_level level,
bool continued,
const struct timeabs *time,
const char *str,
struct peer *peer)
{