diff --git a/google/auth/__init__.py b/google/auth/__init__.py
index 01e3431..339b3d6 100644
--- a/google/auth/__init__.py
+++ b/google/auth/__init__.py
@@ -13,3 +13,9 @@
 # limitations under the License.
 
 """Google Auth Library for Python."""
+
+import logging
+
+
+# Set default logging handler to avoid "No handler found" warnings.
+logging.getLogger(__name__).addHandler(logging.NullHandler())
diff --git a/google/auth/compute_engine/_metadata.py b/google/auth/compute_engine/_metadata.py
index 28d57f6..6d13a54 100644
--- a/google/auth/compute_engine/_metadata.py
+++ b/google/auth/compute_engine/_metadata.py
@@ -19,6 +19,7 @@
 
 import datetime
 import json
+import logging
 import os
 
 from six.moves import http_client
@@ -27,6 +28,8 @@
 from google.auth import _helpers
 from google.auth import exceptions
 
+_LOGGER = logging.getLogger(__name__)
+
 _METADATA_ROOT = 'http://metadata.google.internal/computeMetadata/v1/'
 
 # This is used to ping the metadata server, it avoids the cost of a DNS
@@ -71,6 +74,7 @@
                 metadata_flavor == _METADATA_FLAVOR_VALUE)
 
     except exceptions.TransportError:
+        _LOGGER.info('Compute Engine Metadata server unavailable.')
         return False
 
 
diff --git a/google/auth/transport/_http_client.py b/google/auth/transport/_http_client.py
index ddd5818..3cf5583 100644
--- a/google/auth/transport/_http_client.py
+++ b/google/auth/transport/_http_client.py
@@ -14,6 +14,7 @@
 
 """Transport adapter for http.client, for internal use only."""
 
+import logging
 import socket
 
 from six.moves import http_client
@@ -22,6 +23,8 @@
 from google.auth import exceptions
 from google.auth import transport
 
+_LOGGER = logging.getLogger(__name__)
+
 
 class Response(transport.Response):
     """http.client transport response adapter.
@@ -94,11 +97,15 @@
         connection = http_client.HTTPConnection(parts.netloc)
 
         try:
+            _LOGGER.debug('Making request: %s %s', method, url)
+
             connection.request(
                 method, path, body=body, headers=headers, **kwargs)
             response = connection.getresponse()
             return Response(response)
+
         except (http_client.HTTPException, socket.error) as exc:
             raise exceptions.TransportError(exc)
+
         finally:
             connection.close()
diff --git a/google/auth/transport/urllib3.py b/google/auth/transport/urllib3.py
index 4ac0f98..9fc58f3 100644
--- a/google/auth/transport/urllib3.py
+++ b/google/auth/transport/urllib3.py
@@ -16,12 +16,16 @@
 
 from __future__ import absolute_import
 
+import logging
+
 import urllib3
 import urllib3.exceptions
 
 from google.auth import exceptions
 from google.auth import transport
 
+_LOGGER = logging.getLogger(__name__)
+
 
 class Response(transport.Response):
     """urllib3 transport response adapter.
@@ -84,6 +88,7 @@
             kwargs['timeout'] = timeout
 
         try:
+            _LOGGER.debug('Making request: %s %s', method, url)
             response = self.http.request(
                 method, url, body=body, headers=headers, **kwargs)
             return Response(response)
