Index: trunk/src/org/openstreetmap/josm/tools/HttpClient.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/HttpClient.java	(revision 15386)
+++ trunk/src/org/openstreetmap/josm/tools/HttpClient.java	(revision 15389)
@@ -69,4 +69,5 @@
     private Response response;
     private boolean finishOnCloseOutput = true;
+    private boolean debug;
 
     // Pattern to detect Tomcat error message. Be careful with change of format:
@@ -142,5 +143,5 @@
                 cr = performConnection();
                 final boolean hasReason = reasonForRequest != null && !reasonForRequest.isEmpty();
-                Logging.info("{0} {1}{2} -> {3} {4}{5}",
+                logRequest("{0} {1}{2} -> {3} {4}{5}",
                         getRequestMethod(), getURL(), hasReason ? (" (" + reasonForRequest + ')') : "",
                         cr.getResponseVersion(), cr.getResponseCode(),
@@ -160,5 +161,5 @@
                 }
             } catch (IOException | RuntimeException e) {
-                Logging.info("{0} {1} -> !!!", requestMethod, url);
+                logRequest("{0} {1} -> !!!", requestMethod, url);
                 Logging.warn(e);
                 //noinspection ThrowableResultOfMethodCallIgnored
@@ -175,5 +176,5 @@
                     url = new URL(url, redirectLocation);
                     maxRedirects--;
-                    Logging.info(tr("Download redirected to ''{0}''", redirectLocation));
+                    logRequest(tr("Download redirected to ''{0}''", redirectLocation));
                     response = connect();
                     successfulConnection = true;
@@ -207,6 +208,14 @@
     }
 
+    protected final void logRequest(String pattern, Object... args) {
+        if (debug) {
+            Logging.debug(pattern, args);
+        } else {
+            Logging.info(pattern, args);
+        }
+    }
+
     protected final void logRequestBody() {
-        Logging.info("{0} {1} ({2}) ...", requestMethod, url, Utils.getSizeString(requestBody.length, Locale.getDefault()));
+        logRequest("{0} {1} ({2}) ...", requestMethod, url, Utils.getSizeString(requestBody.length, Locale.getDefault()));
         if (Logging.isTraceEnabled() && hasRequestBody()) {
             Logging.trace("BODY: {0}", new String(requestBody, StandardCharsets.UTF_8));
@@ -801,4 +810,15 @@
     }
 
+    /**
+     * Sets the connect log at DEBUG level instead of the default INFO level.
+     * @param debug {@code true} to set the connect log at DEBUG level
+     * @return {@code this}
+     * @since 15389
+     */
+    public final HttpClient setLogAtDebug(boolean debug) {
+        this.debug = debug;
+        return this;
+    }
+
     private static boolean isRedirect(final int statusCode) {
         switch (statusCode) {
