From 2bf0b922cad3672f4ef2d64316705bf368915c0f Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Mon, 17 Jul 2023 17:05:22 +0930 Subject: [PATCH] lightningd: add "has_io_logging" helper. Rather than exposing the filtering internals. Signed-off-by: Rusty Russell --- lightningd/log.c | 6 +++++- lightningd/log.h | 3 ++- lightningd/subd.c | 2 +- lightningd/test/run-find_my_abspath.c | 6 +++--- lightningd/test/run-shuffle_fds.c | 6 +++--- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/lightningd/log.c b/lightningd/log.c index 47a1af1df..36507d056 100644 --- a/lightningd/log.c +++ b/lightningd/log.c @@ -332,7 +332,7 @@ const char *log_prefix(const struct logger *log) return log->prefix->prefix; } -enum log_level log_print_level(struct logger *log, const struct node_id *node_id) +static enum log_level log_print_level(struct logger *log, const struct node_id *node_id) { if (!log->print_level) { /* Not set globally yet? Print UNUSUAL / BROKEN messages only */ @@ -344,6 +344,10 @@ enum log_level log_print_level(struct logger *log, const struct node_id *node_id return *log->print_level; } +bool log_has_io_logging(const struct logger *log) +{ + return filter_level(log->log_book, log->prefix, log->default_node_id) < LOG_DBG; +} /* This may move entry! */ static void add_entry(struct logger *log, struct log_entry **l) diff --git a/lightningd/log.h b/lightningd/log.h index 40467a1ce..567563f50 100644 --- a/lightningd/log.h +++ b/lightningd/log.h @@ -44,7 +44,8 @@ void logv(struct logger *logger, enum log_level level, const struct node_id *nod bool call_notifier, const char *fmt, va_list ap); const char *log_prefix(const struct logger *logger); -enum log_level log_print_level(struct logger *log, const struct node_id *node_id); +/* Is there any chance we do io-level logging for this node_id in log? */ +bool log_has_io_logging(const struct logger *log); void opt_register_logging(struct lightningd *ld); diff --git a/lightningd/subd.c b/lightningd/subd.c index ace9fcdea..9071f4c90 100644 --- a/lightningd/subd.c +++ b/lightningd/subd.c @@ -742,7 +742,7 @@ static struct subd *new_subd(const tal_t *ctx, &msg_fd, /* We only turn on subdaemon io logging if we're going * to print it: too stressful otherwise! */ - log_print_level(sd->log, node_id) < LOG_DBG, + log_has_io_logging(sd->log), ap); if (sd->pid == (pid_t)-1) { log_unusual(ld->log, "subd %s failed: %s", diff --git a/lightningd/test/run-find_my_abspath.c b/lightningd/test/run-find_my_abspath.c index d0bcf1126..f43d3f660 100644 --- a/lightningd/test/run-find_my_abspath.c +++ b/lightningd/test/run-find_my_abspath.c @@ -142,12 +142,12 @@ void log_backtrace_exit(void) /* Generated stub for log_backtrace_print */ void log_backtrace_print(const char *fmt UNNEEDED, ...) { fprintf(stderr, "log_backtrace_print called!\n"); abort(); } +/* Generated stub for log_has_io_logging */ +bool log_has_io_logging(const struct logger *log UNNEEDED) +{ fprintf(stderr, "log_has_io_logging called!\n"); abort(); } /* Generated stub for log_prefix */ const char *log_prefix(const struct logger *logger UNNEEDED) { fprintf(stderr, "log_prefix called!\n"); abort(); } -/* Generated stub for log_print_level */ -enum log_level log_print_level(struct logger *log UNNEEDED, const struct node_id *node_id UNNEEDED) -{ fprintf(stderr, "log_print_level called!\n"); abort(); } /* Generated stub for log_status_msg */ bool log_status_msg(struct logger *log UNNEEDED, const struct node_id *node_id UNNEEDED, diff --git a/lightningd/test/run-shuffle_fds.c b/lightningd/test/run-shuffle_fds.c index 5f8d44660..9e5e5b745 100644 --- a/lightningd/test/run-shuffle_fds.c +++ b/lightningd/test/run-shuffle_fds.c @@ -82,12 +82,12 @@ void log_(struct logger *logger UNNEEDED, enum log_level level UNNEEDED, const char *fmt UNNEEDED, ...) { fprintf(stderr, "log_ called!\n"); abort(); } +/* Generated stub for log_has_io_logging */ +bool log_has_io_logging(const struct logger *log UNNEEDED) +{ fprintf(stderr, "log_has_io_logging called!\n"); abort(); } /* Generated stub for log_prefix */ const char *log_prefix(const struct logger *logger UNNEEDED) { fprintf(stderr, "log_prefix called!\n"); abort(); } -/* Generated stub for log_print_level */ -enum log_level log_print_level(struct logger *log UNNEEDED, const struct node_id *node_id UNNEEDED) -{ fprintf(stderr, "log_print_level called!\n"); abort(); } /* Generated stub for log_status_msg */ bool log_status_msg(struct logger *log UNNEEDED, const struct node_id *node_id UNNEEDED,