From: Timo Sirainen Date: Fri, 31 Aug 2018 12:06:09 +0000 (+0300) Subject: lib: Move log type to be written before appended log prefix X-Git-Tag: 2.3.4~193 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cebd034a4faba97013502a5754a55e66d3b842cf;p=thirdparty%2Fdovecot%2Fcore.git lib: Move log type to be written before appended log prefix This changes the logging format back to how it used to be before the event logging changes. --- diff --git a/src/lib/event-log.c b/src/lib/event-log.c index 0bab226fa8..2db02dea87 100644 --- a/src/lib/event-log.c +++ b/src/lib/event-log.c @@ -78,17 +78,20 @@ void e_debug(struct event *event, } static bool event_get_log_prefix(struct event *event, string_t *log_prefix, - bool *replace_prefix) + bool *replace_prefix, unsigned int *type_pos) { bool ret = FALSE; if (event->log_prefix_replace) { /* this event replaces all parent log prefixes */ *replace_prefix = TRUE; + *type_pos = event->log_prefix == NULL ? 0 : + strlen(event->log_prefix); } else if (event->parent == NULL) { /* append to default log prefix, don't replace it */ } else { - if (event_get_log_prefix(event->parent, log_prefix, replace_prefix)) + if (event_get_log_prefix(event->parent, log_prefix, + replace_prefix, type_pos)) ret = TRUE; } if (event->log_prefix != NULL) { @@ -156,6 +159,7 @@ event_logv_type(struct event *event, enum log_type log_type, { string_t *log_prefix_str = t_str_new(64); bool replace_prefix = FALSE; + unsigned int type_pos = 0; struct failure_context ctx = { .type = log_type, @@ -169,12 +173,14 @@ event_logv_type(struct event *event, enum log_type log_type, event->source_linenum, &ctx)) abort_after_event = TRUE; - if (!event_get_log_prefix(event, log_prefix_str, &replace_prefix)) { + if (!event_get_log_prefix(event, log_prefix_str, + &replace_prefix, &type_pos)) { /* keep log prefix as it is */ event_vsend(event, &ctx, fmt, args); } else if (replace_prefix) { /* event overrides the log prefix (even if it's "") */ ctx.log_prefix = str_c(log_prefix_str); + ctx.log_prefix_type_pos = type_pos; event_vsend(event, &ctx, fmt, args); } else { /* append to log prefix, but don't fully replace it */ diff --git a/src/lib/lib-event.h b/src/lib/lib-event.h index d283846975..5c3306eab4 100644 --- a/src/lib/lib-event.h +++ b/src/lib/lib-event.h @@ -138,7 +138,9 @@ struct event *event_pop_global(struct event *event); struct event *event_get_global(void); /* Set the appended log prefix string for this event. All the parent events' - log prefixes will be concatenated together when logging. */ + log prefixes will be concatenated together when logging. The log type + text (e.g. "Info: ") will be inserted before appended log prefixes (but + after replaced log prefix). */ struct event * event_set_append_log_prefix(struct event *event, const char *prefix); /* Replace the full log prefix string for this event. The parent events' log diff --git a/src/lib/test-event-log.c b/src/lib/test-event-log.c index e0f4803773..330fb23ed3 100644 --- a/src/lib/test-event-log.c +++ b/src/lib/test-event-log.c @@ -66,14 +66,14 @@ static void test_event_log_prefix(void) }, .result = "replaced2.Info: TEXT", }, - /*{ + { .prefixes = (const struct test_log_prefix []) { { TYPE_REPLACE, "replaced1," }, { TYPE_APPEND, "appended2." }, { .type = TYPE_END } }, .result = "replaced1,Info: appended2.TEXT", - },*/ + }, { .prefixes = (const struct test_log_prefix []) { { TYPE_APPEND, "appended1," }, @@ -99,7 +99,7 @@ static void test_event_log_prefix(void) .global_log_prefix = "global3.", .result = "global3.Info: appended1,appended2.TEXT", }, - /*{ + { .prefixes = (const struct test_log_prefix []) { { TYPE_APPEND, "appended1," }, { TYPE_REPLACE, "replaced2." }, @@ -107,7 +107,7 @@ static void test_event_log_prefix(void) { .type = TYPE_END } }, .result = "replaced2.Info: appended3#TEXT", - },*/ + }, { .prefixes = (const struct test_log_prefix []) { { TYPE_APPEND, "appended1," }, @@ -118,7 +118,7 @@ static void test_event_log_prefix(void) }, .result = "replaced4;Info: TEXT", }, - /*{ + { .prefixes = (const struct test_log_prefix []) { { TYPE_APPEND, "appended1," }, { TYPE_REPLACE, "replaced2." }, @@ -128,7 +128,7 @@ static void test_event_log_prefix(void) { .type = TYPE_END } }, .result = "replaced4;Info: appended5-TEXT", - },*/ + }, }; const struct event_log_params params = { .log_type = LOG_TYPE_INFO,