diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 784bceaec3..08a2976a6b 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -511,8 +511,11 @@ main(int argc, char **argv)
 				break;
 
 			case 'v':			/* verbose */
+				if (g_verbose)
+					pg_logging_set_level(PG_LOG_DEBUG); /* -v -v */
+				else
+					pg_logging_set_level(PG_LOG_INFO);
 				g_verbose = true;
-				pg_logging_set_level(PG_LOG_INFO);
 				break;
 
 			case 'w':
diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c
index 97d2b8dac1..11eeb36aa1 100644
--- a/src/bin/pg_dump/pg_dumpall.c
+++ b/src/bin/pg_dump/pg_dumpall.c
@@ -282,8 +282,11 @@ main(int argc, char *argv[])
 				break;
 
 			case 'v':
+				if (verbose)
+					pg_logging_set_level(PG_LOG_DEBUG); /* -v -v */
+				else
+					pg_logging_set_level(PG_LOG_INFO);
 				verbose = true;
-				pg_logging_set_level(PG_LOG_INFO);
 				appendPQExpBufferStr(pgdumpopts, " -v");
 				break;
 
diff --git a/src/bin/pg_dump/pg_restore.c b/src/bin/pg_dump/pg_restore.c
index 544ae3bc5c..af04aa0787 100644
--- a/src/bin/pg_dump/pg_restore.c
+++ b/src/bin/pg_dump/pg_restore.c
@@ -244,8 +244,11 @@ main(int argc, char **argv)
 				break;
 
 			case 'v':			/* verbose */
+				if (opts->verbose)
+					pg_logging_set_level(PG_LOG_DEBUG); /* -v -v */
+				else
+					pg_logging_set_level(PG_LOG_INFO);
 				opts->verbose = 1;
-				pg_logging_set_level(PG_LOG_INFO);
 				break;
 
 			case 'w':
