mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-15 08:20:16 +08:00
Add capability to suppress CONTEXT: messages to elog machinery.
Hiding context messages usually is not a good idea - except for rather verbose debugging/development utensils like LOG_DEBUG. There the amount of repeated context messages just bloat the log without adding information.
This commit is contained in:
parent
4a5593197b
commit
570bd2b3fd
@ -1081,6 +1081,25 @@ errhidestmt(bool hide_stmt)
|
||||
return 0; /* return value does not matter */
|
||||
}
|
||||
|
||||
/*
|
||||
* errhidestmt --- optionally suppress CONTEXT: field of log entry
|
||||
*
|
||||
* This should only be used for verbose debugging messages where the repeated
|
||||
* inclusion of CONTEXT: bloats the log volume too much.
|
||||
*/
|
||||
int
|
||||
errhidecontext(bool hide_ctx)
|
||||
{
|
||||
ErrorData *edata = &errordata[errordata_stack_depth];
|
||||
|
||||
/* we don't bother incrementing recursion_depth */
|
||||
CHECK_STACK_DEPTH();
|
||||
|
||||
edata->hide_ctx = hide_ctx;
|
||||
|
||||
return 0; /* return value does not matter */
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* errfunction --- add reporting function name to the current error
|
||||
@ -2724,7 +2743,8 @@ write_csvlog(ErrorData *edata)
|
||||
appendStringInfoChar(&buf, ',');
|
||||
|
||||
/* errcontext */
|
||||
appendCSVLiteral(&buf, edata->context);
|
||||
if (!edata->hide_ctx)
|
||||
appendCSVLiteral(&buf, edata->context);
|
||||
appendStringInfoChar(&buf, ',');
|
||||
|
||||
/* user query --- only reported if not disabled by the caller */
|
||||
@ -2856,7 +2876,7 @@ send_message_to_server_log(ErrorData *edata)
|
||||
append_with_tabs(&buf, edata->internalquery);
|
||||
appendStringInfoChar(&buf, '\n');
|
||||
}
|
||||
if (edata->context)
|
||||
if (edata->context && !edata->hide_ctx)
|
||||
{
|
||||
log_line_prefix(&buf, edata);
|
||||
appendStringInfoString(&buf, _("CONTEXT: "));
|
||||
|
@ -221,6 +221,7 @@ errcontext_msg(const char *fmt,...)
|
||||
__attribute__((format(PG_PRINTF_ATTRIBUTE, 1, 2)));
|
||||
|
||||
extern int errhidestmt(bool hide_stmt);
|
||||
extern int errhidecontext(bool hide_ctx);
|
||||
|
||||
extern int errfunction(const char *funcname);
|
||||
extern int errposition(int cursorpos);
|
||||
@ -385,6 +386,7 @@ typedef struct ErrorData
|
||||
bool output_to_client; /* will report to client? */
|
||||
bool show_funcname; /* true to force funcname inclusion */
|
||||
bool hide_stmt; /* true to prevent STATEMENT: inclusion */
|
||||
bool hide_ctx; /* true to prevent CONTEXT: inclusion */
|
||||
const char *filename; /* __FILE__ of ereport() call */
|
||||
int lineno; /* __LINE__ of ereport() call */
|
||||
const char *funcname; /* __func__ of ereport() call */
|
||||
|
Loading…
Reference in New Issue
Block a user