42
42
*
43
43
*
44
44
* IDENTIFICATION
45
- * $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.179 2007/01/05 22:19:43 momjian Exp $
45
+ * $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.180 2007/01/20 14:45:35 momjian Exp $
46
46
*
47
47
*-------------------------------------------------------------------------
48
48
*/
@@ -121,6 +121,7 @@ static char *expand_fmt_string(const char *fmt, ErrorData *edata);
121
121
static const char * useful_strerror (int errnum );
122
122
static const char * error_severity (int elevel );
123
123
static void append_with_tabs (StringInfo buf , const char * str );
124
+ static int is_log_level_output (int elevel , int log_min_level );
124
125
125
126
126
127
/*
@@ -139,7 +140,7 @@ errstart(int elevel, const char *filename, int lineno,
139
140
const char * funcname )
140
141
{
141
142
ErrorData * edata ;
142
- bool output_to_server = false ;
143
+ bool output_to_server ;
143
144
bool output_to_client = false;
144
145
int i ;
145
146
@@ -196,33 +197,10 @@ errstart(int elevel, const char *filename, int lineno,
196
197
197
198
/* Determine whether message is enabled for server log output */
198
199
if (IsPostmasterEnvironment )
199
- {
200
- /* Complicated because LOG is sorted out-of-order for this purpose */
201
- if (elevel == LOG || elevel == COMMERROR )
202
- {
203
- if (log_min_messages == LOG )
204
- output_to_server = true;
205
- else if (log_min_messages < FATAL )
206
- output_to_server = true;
207
- }
208
- else
209
- {
210
- /* elevel != LOG */
211
- if (log_min_messages == LOG )
212
- {
213
- if (elevel >= FATAL )
214
- output_to_server = true;
215
- }
216
- /* Neither is LOG */
217
- else if (elevel >= log_min_messages )
218
- output_to_server = true;
219
- }
220
- }
200
+ output_to_server = is_log_level_output (elevel , log_min_messages );
221
201
else
222
- {
223
202
/* In bootstrap/standalone case, do not sort LOG out-of-order */
224
203
output_to_server = (elevel >= log_min_messages );
225
- }
226
204
227
205
/* Determine whether message is enabled for client output */
228
206
if (whereToSendOutput == DestRemote && elevel != COMMERROR )
@@ -2073,3 +2051,28 @@ write_stderr(const char *fmt,...)
2073
2051
#endif
2074
2052
va_end (ap );
2075
2053
}
2054
+
2055
+
2056
+ static int is_log_level_output (int elevel , int log_min_level )
2057
+ {
2058
+ /*
2059
+ * Complicated because LOG is sorted out-of-order here, between
2060
+ * ERROR and FATAL.
2061
+ */
2062
+ if (elevel == LOG || elevel == COMMERROR )
2063
+ {
2064
+ if (log_min_level == LOG || log_min_level <= ERROR )
2065
+ return true;
2066
+ }
2067
+ else if (log_min_level == LOG )
2068
+ {
2069
+ /* elevel != LOG */
2070
+ if (elevel >= FATAL )
2071
+ return true;
2072
+ }
2073
+ /* Neither is LOG */
2074
+ else if (elevel >= log_min_level )
2075
+ return true;
2076
+
2077
+ return false;
2078
+ }
0 commit comments