aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/error
diff options
context:
space:
mode:
authorJeff Davis <jdavis@postgresql.org>2022-07-11 12:29:33 -0700
committerJeff Davis <jdavis@postgresql.org>2022-07-11 12:29:33 -0700
commitb40baa96a7ad789718dcf59b1dd73bae15c3a7e1 (patch)
treee4c0e7db63eea5c1a1d12c275b2566d8b3353b6e /src/backend/utils/error
parentbf022d337ef096c79e6a0b51f0b42e69749ae210 (diff)
downloadpostgresql-b40baa96a7ad789718dcf59b1dd73bae15c3a7e1.tar.gz
postgresql-b40baa96a7ad789718dcf59b1dd73bae15c3a7e1.zip
Provide log_status_format(), useful for an emit_log_hook.
Refactor so that log_line_prefix() is a thin wrapper over a new function log_status_format(), and move the implementation to the latter. Export log_status_format() so that it can be used by an emit_log_hook. Discussion: https://postgr.es/m/39c8197652f4d3050aedafae79fa5af31096505f.camel%40j-davis.com Reviewed-by: Michael Paquier, Alvaro Herrera
Diffstat (limited to 'src/backend/utils/error')
-rw-r--r--src/backend/utils/error/elog.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index 59124bd9ccb..95f32de4e29 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -2438,11 +2438,20 @@ process_log_prefix_padding(const char *p, int *ppadding)
}
/*
- * Format tag info for log lines; append to the provided buffer.
+ * Format log status information using Log_line_prefix.
*/
static void
log_line_prefix(StringInfo buf, ErrorData *edata)
{
+ log_status_format(buf, Log_line_prefix, edata);
+}
+
+/*
+ * Format log status info; append to the provided buffer.
+ */
+void
+log_status_format(StringInfo buf, const char *format, ErrorData *edata)
+{
/* static counter for line numbers */
static long log_line_number = 0;
@@ -2465,10 +2474,10 @@ log_line_prefix(StringInfo buf, ErrorData *edata)
}
log_line_number++;
- if (Log_line_prefix == NULL)
+ if (format == NULL)
return; /* in case guc hasn't run yet */
- for (p = Log_line_prefix; *p != '\0'; p++)
+ for (p = format; *p != '\0'; p++)
{
if (*p != '%')
{