Skip to content
This repository was archived by the owner on Aug 13, 2026. It is now read-only.
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Custom logs from a GCP Function do not contain execution-id #343

Description

@amertkara

I am not sure if this is a bug or a misconfiguration issue but we are unable to get the execution-id in our logs. GCP's own function logs like startup/teardown/timeout contain it however our own logs don't. This makes it impossible to correlate all logs from an instance.

Example (GCP function startup log)

{
insertId: "000000-a51b0cd9-1f4d-4396-b812-4b35c8878b69"
labels: {
execution_id: "j57c7yk340qq"
}
logName: "projects/PROJECT-ID/logs/cloudfunctions.googleapis.com%2Fcloud-functions"
receiveTimestamp: "2021-06-30T17:37:16.202805413Z"
resource: {
labels: {
function_name: "FUNCTION-NAME",
project_id: "PROJECT-ID",
region: "REGION"
}
type: "cloud_function"
}
severity: "DEBUG"
textPayload: "Function execution started"
timestamp: "2021-06-30T17:37:05.341077546Z"
}

We also tried setting a custom label in CloudLoggingHandler with a trace-id however GCP's own logs don't reflect the custom trace-id. This makes me think that GCP is using a separate logger which attaches the execution-id and our logs are isolated from that logger.

Environment details

  • OS type and version: N/A
  • Python version: 3.7.9
  • pip version: 21.1.2
  • google-cloud-logging version: 2.3.1

Steps to reproduce

  1. Create and attach CloudLoggingHandler to a logger in a GCP function
  2. Log an INFO message
  3. Verify the log does not contain execution-id inside labels

Code example

A simplified version of our logging setup and a basic event-trigger function.

importloggingimportgoogle.cloud.loggingfromgoogle.cloud.logging_v2.handlers.handlersimportCloudLoggingHandlerclassFunctionLogger(logging.Logger):
def__init__(self, level=logging.NOTSET):
super().__init__("logger_name", level)
client=google.cloud.logging.Client()
self._handler=CloudLoggingHandler(client)
self.propagate=False# prevent logging from root loggerself.addHandler(self._handler)
defhandler(event, context=None):
"""function entry point"""logger=FunctionLogger()
logger.info("Test message")

Thanks!!

Metadata

Metadata

Assignees

Labels

api: loggingIssues related to the googleapis/python-logging API.priority: p2Moderately-important priority. Fix may not be included in next release.type: questionRequest for information or clarification. Not an issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions