Applied patch attached that moves code that places LOG error level
between ERROR and PANIC into new function is_log_level_output(), for
code clarity.
--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
Index: src/backend/utils/error/elog.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/error/elog.c,v
retrieving revision 1.179
diff -c -c -r1.179 elog.c
*** src/backend/utils/error/elog.c 5 Jan 2007 22:19:43 -0000 1.179
--- src/backend/utils/error/elog.c 20 Jan 2007 14:34:25 -0000
***************
*** 121,126 ****
--- 121,127 ----
static const char *useful_strerror(int errnum);
static const char *error_severity(int elevel);
static void append_with_tabs(StringInfo buf, const char *str);
+ static int is_log_level_output(int elevel, int log_min_level);
/*
***************
*** 139,145 ****
const char *funcname)
{
ErrorData *edata;
! bool output_to_server = false;
bool output_to_client = false;
int i;
--- 140,146 ----
const char *funcname)
{
ErrorData *edata;
! bool output_to_server;
bool output_to_client = false;
int i;
***************
*** 196,228 ****
/* Determine whether message is enabled for server log output */
if (IsPostmasterEnvironment)
! {
! /* Complicated because LOG is sorted out-of-order for this purpose */
! if (elevel == LOG || elevel == COMMERROR)
! {
! if (log_min_messages == LOG)
! output_to_server = true;
! else if (log_min_messages < FATAL)
! output_to_server = true;
! }
! else
! {
! /* elevel != LOG */
! if (log_min_messages == LOG)
! {
! if (elevel >= FATAL)
! output_to_server = true;
! }
! /* Neither is LOG */
! else if (elevel >= log_min_messages)
! output_to_server = true;
! }
! }
else
- {
/* In bootstrap/standalone case, do not sort LOG out-of-order */
output_to_server = (elevel >= log_min_messages);
- }
/* Determine whether message is enabled for client output */
if (whereToSendOutput == DestRemote && elevel != COMMERROR)
--- 197,206 ----
/* Determine whether message is enabled for server log output */
if (IsPostmasterEnvironment)
! output_to_server = is_log_level_output(elevel, log_min_messages);
else
/* In bootstrap/standalone case, do not sort LOG out-of-order */
output_to_server = (elevel >= log_min_messages);
/* Determine whether message is enabled for client output */
if (whereToSendOutput == DestRemote && elevel != COMMERROR)
***************
*** 2073,2075 ****
--- 2051,2078 ----
#endif
va_end(ap);
}
+
+
+ static int is_log_level_output(int elevel, int log_min_level)
+ {
+ /*
+ * Complicated because LOG is sorted out-of-order here, between
+ * ERROR and FATAL.
+ */
+ if (elevel == LOG || elevel == COMMERROR)
+ {
+ if (log_min_level == LOG || log_min_level <= ERROR)
+ return true;
+ }
+ else if (log_min_level == LOG)
+ {
+ /* elevel != LOG */
+ if (elevel >= FATAL)
+ return true;
+ }
+ /* Neither is LOG */
+ else if (elevel >= log_min_level)
+ return true;
+
+ return false;
+ }