mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
Add color support for new frontend detail/hint messages
As before, the defaults are similar to gcc's default appearance.
This commit is contained in:
parent
dfd0f2bbc5
commit
c215cc7b61
@ -74,6 +74,14 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>note</literal></term>
|
||||
<listitem>
|
||||
<para>used to highlight the text <quote>detail</quote> and
|
||||
<quote>hint</quote> in such messages</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>locus</literal></term>
|
||||
<listitem>
|
||||
@ -85,9 +93,11 @@
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The default value is <literal>error=01;31:warning=01;35:locus=01</literal>
|
||||
The default value is
|
||||
<literal>error=01;31:warning=01;35:note=01;36:locus=01</literal>
|
||||
(<literal>01;31</literal> = bold red, <literal>01;35</literal> = bold
|
||||
magenta, <literal>01</literal> = bold default color).
|
||||
magenta, <literal>01;36</literal> = bold cyan, <literal>01</literal> = bold
|
||||
default color).
|
||||
</para>
|
||||
|
||||
<tip>
|
||||
|
@ -28,10 +28,12 @@ static void (*log_locus_callback) (const char **, uint64 *);
|
||||
|
||||
static const char *sgr_error = NULL;
|
||||
static const char *sgr_warning = NULL;
|
||||
static const char *sgr_note = NULL;
|
||||
static const char *sgr_locus = NULL;
|
||||
|
||||
#define SGR_ERROR_DEFAULT "01;31"
|
||||
#define SGR_WARNING_DEFAULT "01;35"
|
||||
#define SGR_NOTE_DEFAULT "01;36"
|
||||
#define SGR_LOCUS_DEFAULT "01"
|
||||
|
||||
#define ANSI_ESCAPE_FMT "\x1b[%sm"
|
||||
@ -134,6 +136,8 @@ pg_logging_init(const char *argv0)
|
||||
sgr_error = strdup(value);
|
||||
if (strcmp(name, "warning") == 0)
|
||||
sgr_warning = strdup(value);
|
||||
if (strcmp(name, "note") == 0)
|
||||
sgr_note = strdup(value);
|
||||
if (strcmp(name, "locus") == 0)
|
||||
sgr_locus = strdup(value);
|
||||
}
|
||||
@ -146,6 +150,7 @@ pg_logging_init(const char *argv0)
|
||||
{
|
||||
sgr_error = SGR_ERROR_DEFAULT;
|
||||
sgr_warning = SGR_WARNING_DEFAULT;
|
||||
sgr_note = SGR_NOTE_DEFAULT;
|
||||
sgr_locus = SGR_LOCUS_DEFAULT;
|
||||
}
|
||||
}
|
||||
@ -281,10 +286,18 @@ pg_log_generic_v(enum pg_log_level level, enum pg_log_part part,
|
||||
}
|
||||
break;
|
||||
case PG_LOG_DETAIL:
|
||||
if (sgr_note)
|
||||
fprintf(stderr, ANSI_ESCAPE_FMT, sgr_note);
|
||||
fprintf(stderr, _("detail: "));
|
||||
if (sgr_note)
|
||||
fprintf(stderr, ANSI_ESCAPE_RESET);
|
||||
break;
|
||||
case PG_LOG_HINT:
|
||||
if (sgr_note)
|
||||
fprintf(stderr, ANSI_ESCAPE_FMT, sgr_note);
|
||||
fprintf(stderr, _("hint: "));
|
||||
if (sgr_note)
|
||||
fprintf(stderr, ANSI_ESCAPE_RESET);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user