# Class CloudLoggingHandler (3.16.0)

3.16.0 (latest) 3.15.0 3.13.0 3.12.1 3.11.3 3.10.0 3.9.0 3.8.0 3.7.0 3.6.0 3.5.0 3.4.0 3.3.1 3.2.5 3.1.2 3.0.0 2.7.2 2.6.0 2.5.0 2.4.0 2.3.1 2.2.0 2.1.1 2.0.2 1.15.3 1.14.0 1.13.0 1.12.1

    CloudLoggingHandler(
        client,
        *,
        name: str = "python",
        transport: typing.Type[
            google.cloud.logging_v2.handlers.transports.base.Transport
        ] = google.cloud.logging_v2.handlers.transports.background_thread.BackgroundThreadTransport,
        resource: typing.Optional[google.cloud.logging_v2.resource.Resource] = None,
        labels: typing.Optional[dict] = None,
        stream: typing.Optional[typing.IO] = None,
        **kwargs
    )

Handler that directly makes Cloud Logging API calls.

This is a Python standard `logging` handler using that can be used to
route Python standard logging messages directly to the Stackdriver
Logging API.

This handler is used when not in GAE or GKE environment.

This handler supports both an asynchronous and synchronous transport.

Example:

    import logging
    import google.cloud.logging
    from google.cloud.logging_v2.handlers import https://docs.cloud.google.com/python/docs/reference/logging/latest/google.cloud.logging_v2.handlers.handlers.CloudLoggingHandler.html

    client = google.cloud.logging.https://docs.cloud.google.com/python/docs/reference/logging/latest/google.cloud.logging_v2.client.Client.html()
    handler = CloudLoggingHandler(client)

    cloud_logger = logging.getLogger('cloudLogger')
    cloud_logger.setLevel(logging.INFO)
    cloud_logger.addHandler(handler)

    cloud_logger.error('bad news')  # API call

## Methods

### CloudLoggingHandler

    CloudLoggingHandler(
        client,
        *,
        name: str = "python",
        transport: typing.Type[
            google.cloud.logging_v2.handlers.transports.base.Transport
        ] = google.cloud.logging_v2.handlers.transports.background_thread.BackgroundThreadTransport,
        resource: typing.Optional[google.cloud.logging_v2.resource.Resource] = None,
        labels: typing.Optional[dict] = None,
        stream: typing.Optional[typing.IO] = None,
        **kwargs
    )

| **Parameters** ||
|---|---|
| **Name** | **Description** |
| `client` | `` `logging_v2.client.Client` `` The authenticated Google Cloud Logging client for this handler to use. |
| `name` | `str` the name of the custom log in Cloud Logging. Defaults to 'python'. The name of the Python logger will be represented in the `python_logger` field. |
| `transport` | `` `logging_v2.transports.Transport` `` Class for creating new transport objects. It should extend from the base `.Transport` type and implement :meth`.Transport.send`. Defaults to `.BackgroundThreadTransport`. The other option is `.SyncTransport`. |
| `resource` | `` `logging_v2.resource.Resource` `` Resource for this Handler. If not given, will be inferred from the environment. |
| `labels` | `Optional[dict]` Additional labels to attach to logs. |
| `stream` | `Optional[IO]` Stream to be used by the handler. |

### close

    close()

Closes the log handler and cleans up all Transport objects used.

### emit

    emit(record)

Actually log the specified logging record.

Overrides the default emit behavior of `StreamHandler`.

See <https://docs.python.org/2/library/logging.html#handler-objects>

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `record` | `logging.LogRecord` The record to be logged. |

### flush

    flush()

Forces the Transport object to submit any pending log records.

For SyncTransport, this is a no-op.