diff --git a/docs/index.rst b/docs/index.rst
index 312eac5c9777..f330bf4f9c31 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -111,6 +111,7 @@
   :caption: Cloud Logging
 
   logging-usage
+  Client <logging-client>
 
 .. toctree::
   :maxdepth: 0
diff --git a/docs/logging-client.rst b/docs/logging-client.rst
new file mode 100644
index 000000000000..528414e1a2e3
--- /dev/null
+++ b/docs/logging-client.rst
@@ -0,0 +1,16 @@
+Logging Client
+==============
+
+.. automodule:: gcloud.logging.client
+  :members:
+  :undoc-members:
+  :show-inheritance:
+
+Connection
+~~~~~~~~~~
+
+.. automodule:: gcloud.logging.connection
+  :members:
+  :undoc-members:
+  :show-inheritance:
+
diff --git a/gcloud/logging/__init__.py b/gcloud/logging/__init__.py
new file mode 100644
index 000000000000..2a4ab1ab7806
--- /dev/null
+++ b/gcloud/logging/__init__.py
@@ -0,0 +1,21 @@
+# Copyright 2016 Google Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Google Cloud Logging API wrapper."""
+
+from gcloud.logging.client import Client
+from gcloud.logging.connection import Connection
+
+
+SCOPE = Connection.SCOPE
diff --git a/gcloud/logging/client.py b/gcloud/logging/client.py
new file mode 100644
index 000000000000..beaf9ed2217e
--- /dev/null
+++ b/gcloud/logging/client.py
@@ -0,0 +1,43 @@
+# Copyright 2016 Google Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Client for interacting with the Google Cloud Logging API."""
+
+
+from gcloud.client import JSONClient
+from gcloud.logging.connection import Connection
+
+
+class Client(JSONClient):
+    """Client to bundle configuration needed for API requests.
+
+    :type project: string
+    :param project: the project which the client acts on behalf of.
+                    If not passed, falls back to the default inferred
+                    from the environment.
+
+    :type credentials: :class:`oauth2client.client.OAuth2Credentials` or
+                       :class:`NoneType`
+    :param credentials: The OAuth2 Credentials to use for the connection
+                        owned by this client. If not passed (and if no ``http``
+                        object is passed), falls back to the default inferred
+                        from the environment.
+
+    :type http: :class:`httplib2.Http` or class that defines ``request()``.
+    :param http: An optional HTTP object to make requests. If not passed, an
+                 ``http`` object is created that is bound to the
+                 ``credentials`` for the current object.
+    """
+
+    _connection_class = Connection
diff --git a/gcloud/logging/connection.py b/gcloud/logging/connection.py
new file mode 100644
index 000000000000..1c330a28529e
--- /dev/null
+++ b/gcloud/logging/connection.py
@@ -0,0 +1,48 @@
+# Copyright 2016 Google Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Create / interact with gcloud logging connections."""
+
+from gcloud import connection as base_connection
+
+
+class Connection(base_connection.JSONConnection):
+    """A connection to Google Cloud Logging via the JSON REST API.
+
+    :type credentials: :class:`oauth2client.client.OAuth2Credentials`
+    :param credentials: (Optional) The OAuth2 Credentials to use for this
+                        connection.
+
+    :type http: :class:`httplib2.Http` or class that defines ``request()``.
+    :param http: (Optional) HTTP object to make requests.
+
+    :type api_base_url: string
+    :param api_base_url: The base of the API call URL. Defaults to the value
+                         :attr:`Connection.API_BASE_URL`.
+    """
+
+    API_BASE_URL = 'https://logging.googleapis.com'
+    """The base of the API call URL."""
+
+    API_VERSION = 'v2beta1'
+    """The version of the API, used in building the API call's URL."""
+
+    API_URL_TEMPLATE = '{api_base_url}/{api_version}{path}'
+    """A template for the URL of a particular API call."""
+
+    SCOPE = ('https://www.googleapis.com/auth/logging.read',
+             'https://www.googleapis.com/auth/logging.write',
+             'https://www.googleapis.com/auth/logging.admin',
+             'https://www.googleapis.com/auth/cloud-platform')
+    """The scopes required for authenticating as a Cloud Logging consumer."""
diff --git a/gcloud/logging/test_client.py b/gcloud/logging/test_client.py
new file mode 100644
index 000000000000..d5c17fcfa207
--- /dev/null
+++ b/gcloud/logging/test_client.py
@@ -0,0 +1,44 @@
+# Copyright 2016 Google Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest2
+
+
+class TestClient(unittest2.TestCase):
+
+    def _getTargetClass(self):
+        from gcloud.logging.client import Client
+        return Client
+
+    def _makeOne(self, *args, **kw):
+        return self._getTargetClass()(*args, **kw)
+
+    def test_ctor(self):
+        PROJECT = 'PROJECT'
+        creds = _Credentials()
+        client = self._makeOne(project=PROJECT, credentials=creds)
+        self.assertEqual(client.project, PROJECT)
+
+
+class _Credentials(object):
+
+    _scopes = None
+
+    @staticmethod
+    def create_scoped_required():
+        return True
+
+    def create_scoped(self, scope):
+        self._scopes = scope
+        return self
diff --git a/gcloud/logging/test_connection.py b/gcloud/logging/test_connection.py
new file mode 100644
index 000000000000..2939b683305e
--- /dev/null
+++ b/gcloud/logging/test_connection.py
@@ -0,0 +1,44 @@
+# Copyright 2016 Google Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest2
+
+
+class TestConnection(unittest2.TestCase):
+
+    def _getTargetClass(self):
+        from gcloud.logging.connection import Connection
+        return Connection
+
+    def _makeOne(self, *args, **kw):
+        return self._getTargetClass()(*args, **kw)
+
+    def test_default_url(self):
+        creds = _Credentials()
+        conn = self._makeOne(creds)
+        klass = self._getTargetClass()
+        self.assertEqual(conn.credentials._scopes, klass.SCOPE)
+
+
+class _Credentials(object):
+
+    _scopes = None
+
+    @staticmethod
+    def create_scoped_required():
+        return True
+
+    def create_scoped(self, scope):
+        self._scopes = scope
+        return self
diff --git a/scripts/verify_included_modules.py b/scripts/verify_included_modules.py
index eb1a6f3571fe..41bb658ebe23 100644
--- a/scripts/verify_included_modules.py
+++ b/scripts/verify_included_modules.py
@@ -36,6 +36,7 @@
     'gcloud.datastore.__init__',
     'gcloud.dns.__init__',
     'gcloud.iterator',
+    'gcloud.logging.__init__',
     'gcloud.pubsub.__init__',
     'gcloud.resource_manager.__init__',
     'gcloud.search.__init__',