Structured Log Handler

Logging handler for printing formatted structured logs to standard output.

class google.cloud.logging_v2.handlers.structured_log.StructuredLogHandler(*, labels=None, stream=None, project_id=None, json_encoder_cls=None)

Bases: logging.StreamHandler

Handler to format logs into the Cloud Logging structured log format, and write them to standard output

  • Parameters

    • labels (Optional[dict]) – Additional labels to attach to logs.

    • stream (Optional[IO]) – Stream to be used by the handler.

    • project (Optional[str]) – Project Id associated with the logs.

    • json_encoder_cls (Optional[Type[JSONEncoder]]) – Custom JSON encoder. Defaults to json.JSONEncoder

emit(record)

Emit a record.

If a formatter is specified, it is used to format the record. The record is then written to the stream with a trailing newline. If exception information is present, it is formatted using traceback.print_exception and appended to the stream. If the stream has an ‘encoding’ attribute, it is used to determine how to do the output to the stream.

format(record)

Format the message into structured log JSON. :param record: The log record. :type record: logging.LogRecord

  • Returns

    A JSON string formatted for GCP structured logging.

  • Return type

    str