diff --git a/src/bin/pg_dump/pg_backup_utils.h b/src/bin/pg_dump/pg_backup_utils.h index 5b1c51554d..8173bb93cf 100644 --- a/src/bin/pg_dump/pg_backup_utils.h +++ b/src/bin/pg_dump/pg_backup_utils.h @@ -34,8 +34,7 @@ extern void exit_nicely(int code) pg_attribute_noreturn(); /* In pg_dump, we modify pg_fatal to call exit_nicely instead of exit */ #undef pg_fatal #define pg_fatal(...) do { \ - if (likely(__pg_log_level <= PG_LOG_ERROR)) \ - pg_log_generic(PG_LOG_ERROR, PG_LOG_PRIMARY, __VA_ARGS__); \ + pg_log_generic(PG_LOG_ERROR, PG_LOG_PRIMARY, __VA_ARGS__); \ exit_nicely(1); \ } while(0) diff --git a/src/common/logging.c b/src/common/logging.c index 2933cab85c..0b5bcb1a17 100644 --- a/src/common/logging.c +++ b/src/common/logging.c @@ -228,6 +228,10 @@ pg_log_generic_v(enum pg_log_level level, enum pg_log_part part, Assert(fmt); Assert(fmt[strlen(fmt) - 1] != '\n'); + /* Do nothing if log level is too low. */ + if (level < __pg_log_level) + return; + /* * Flush stdout before output to stderr, to ensure sync even when stdout * is buffered. diff --git a/src/include/common/logging.h b/src/include/common/logging.h index e213bb70d0..9f426c32d6 100644 --- a/src/include/common/logging.h +++ b/src/include/common/logging.h @@ -103,50 +103,32 @@ void pg_log_generic_v(enum pg_log_level level, enum pg_log_part part, * Preferred style is to use these macros to perform logging; don't call * pg_log_generic[_v] directly, except perhaps in error interface code. */ -#define pg_log_error(...) do { \ - if (likely(__pg_log_level <= PG_LOG_ERROR)) \ - pg_log_generic(PG_LOG_ERROR, PG_LOG_PRIMARY, __VA_ARGS__); \ - } while(0) +#define pg_log_error(...) \ + pg_log_generic(PG_LOG_ERROR, PG_LOG_PRIMARY, __VA_ARGS__) -#define pg_log_error_detail(...) do { \ - if (likely(__pg_log_level <= PG_LOG_ERROR)) \ - pg_log_generic(PG_LOG_ERROR, PG_LOG_DETAIL, __VA_ARGS__); \ - } while(0) +#define pg_log_error_detail(...) \ + pg_log_generic(PG_LOG_ERROR, PG_LOG_DETAIL, __VA_ARGS__) -#define pg_log_error_hint(...) do { \ - if (likely(__pg_log_level <= PG_LOG_ERROR)) \ - pg_log_generic(PG_LOG_ERROR, PG_LOG_HINT, __VA_ARGS__); \ - } while(0) +#define pg_log_error_hint(...) \ + pg_log_generic(PG_LOG_ERROR, PG_LOG_HINT, __VA_ARGS__) -#define pg_log_warning(...) do { \ - if (likely(__pg_log_level <= PG_LOG_WARNING)) \ - pg_log_generic(PG_LOG_WARNING, PG_LOG_PRIMARY, __VA_ARGS__); \ - } while(0) +#define pg_log_warning(...) \ + pg_log_generic(PG_LOG_WARNING, PG_LOG_PRIMARY, __VA_ARGS__) -#define pg_log_warning_detail(...) do { \ - if (likely(__pg_log_level <= PG_LOG_WARNING)) \ - pg_log_generic(PG_LOG_WARNING, PG_LOG_DETAIL, __VA_ARGS__); \ - } while(0) +#define pg_log_warning_detail(...) \ + pg_log_generic(PG_LOG_WARNING, PG_LOG_DETAIL, __VA_ARGS__) -#define pg_log_warning_hint(...) do { \ - if (likely(__pg_log_level <= PG_LOG_WARNING)) \ - pg_log_generic(PG_LOG_WARNING, PG_LOG_HINT, __VA_ARGS__); \ - } while(0) +#define pg_log_warning_hint(...) \ + pg_log_generic(PG_LOG_WARNING, PG_LOG_HINT, __VA_ARGS__) -#define pg_log_info(...) do { \ - if (likely(__pg_log_level <= PG_LOG_INFO)) \ - pg_log_generic(PG_LOG_INFO, PG_LOG_PRIMARY, __VA_ARGS__); \ - } while(0) +#define pg_log_info(...) \ + pg_log_generic(PG_LOG_INFO, PG_LOG_PRIMARY, __VA_ARGS__) -#define pg_log_info_detail(...) do { \ - if (likely(__pg_log_level <= PG_LOG_INFO)) \ - pg_log_generic(PG_LOG_INFO, PG_LOG_DETAIL, __VA_ARGS__); \ - } while(0) +#define pg_log_info_detail(...) \ + pg_log_generic(PG_LOG_INFO, PG_LOG_DETAIL, __VA_ARGS__) -#define pg_log_info_hint(...) do { \ - if (likely(__pg_log_level <= PG_LOG_INFO)) \ - pg_log_generic(PG_LOG_INFO, PG_LOG_HINT, __VA_ARGS__); \ - } while(0) +#define pg_log_info_hint(...) \ + pg_log_generic(PG_LOG_INFO, PG_LOG_HINT, __VA_ARGS__) #define pg_log_debug(...) do { \ if (unlikely(__pg_log_level <= PG_LOG_DEBUG)) \ @@ -167,8 +149,7 @@ void pg_log_generic_v(enum pg_log_level level, enum pg_log_part part, * A common shortcut: pg_log_error() and immediately exit(1). */ #define pg_fatal(...) do { \ - if (likely(__pg_log_level <= PG_LOG_ERROR)) \ - pg_log_generic(PG_LOG_ERROR, PG_LOG_PRIMARY, __VA_ARGS__); \ + pg_log_generic(PG_LOG_ERROR, PG_LOG_PRIMARY, __VA_ARGS__); \ exit(1); \ } while(0)