Python Client for Stackdriver Logging

image image

Stackdriver Logging API: Writes log entries and manages your Stackdriver Logging configuration.

Quick Start

In order to use this library, you first need to go through the following steps:

  1. Select or create a Cloud Platform project.

  2. Enable billing for your project.

  3. Enable the Stackdriver Logging API.

  4. Setup Authentication.

Installation

Install this library in a venv using pip. venv is a tool to create isolated Python environments. The basic problem it addresses is one of dependencies and versions, and indirectly permissions.

With venv, it’s possible to install this library without needing system install permissions, and without clashing with the installed system dependencies.

Supported Python Versions

Python >= 3.5

Deprecated Python Versions

Python == 2.7. Python 2.7 support was removed on January 1, 2020.

Mac/Linux

python -m venv <your-env>
source <your-env>/bin/activate
<your-env>/bin/pip install google-cloud-logging

Windows

python -m venv <your-env>
<your-env>\Scripts\activate
<your-env>\Scripts\pip.exe install google-cloud-logging

Using the API

from google.cloud import logging_v2
client = logging_v2.LoggingServiceV2Client()

resource = {
    "type": "global",
    "labels": {
        "project_id": "[PROJECT_ID]"
    }
}

"""
Log entries can be either LogEntry or dict.
You can describe the same data in the following format:

e = {
    "log_name": "projects/[PROJECT_ID]/logs/test-logging",
    "resource": resource,
    "text_payload": "this is a log statement",
}
"""
e = logging_v2.types.LogEntry(
    log_name="projects/[PROJECT_ID]/logs/test-logging", # optional
    resource=resource, # optional
    text_payload="this is a log statement")

entries = [e]
response = client.write_log_entries(entries)
from google.cloud import logging
client = logging.Client()
logger = client.logger('log_name')
logger.log_text('A simple entry')  # API call

Example of fetching entries:

from google.cloud import logging
client = logging.Client()
logger = client.logger('log_name')
for entry in logger.list_entries():
    print(entry.payload)

Next Steps