Move code that places LOG error level between ERROR and PANIC into new
authorBruce Momjian <bruce@momjian.us>
Sat, 20 Jan 2007 14:45:35 +0000 (14:45 +0000)
committerBruce Momjian <bruce@momjian.us>
Sat, 20 Jan 2007 14:45:35 +0000 (14:45 +0000)
function is_log_level_output(), for code clarity.

src/backend/utils/error/elog.c

index b8a4846c3f40f5e7fbcbd5b88081ae18ee961413..45bd0998b8aad96eca5e58ecaa487d1382078b90 100644 (file)
@@ -42,7 +42,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.179 2007/01/05 22:19:43 momjian Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.180 2007/01/20 14:45:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -121,6 +121,7 @@ static char *expand_fmt_string(const char *fmt, ErrorData *edata);
 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,7 +140,7 @@ errstart(int elevel, const char *filename, int lineno,
         const char *funcname)
 {
    ErrorData  *edata;
-   bool        output_to_server = false;
+   bool        output_to_server;
    bool        output_to_client = false;
    int         i;
 
@@ -196,33 +197,10 @@ errstart(int elevel, const char *filename, int lineno,
 
    /* 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;
-       }
-   }
+       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,3 +2051,28 @@ write_stderr(const char *fmt,...)
 #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;
+}