Python Google Cloud Function Logging Severity and Duplicates

我怕爱的太早我们不能终老 提交于 2020-02-23 10:24:21

问题


I'm working on a simple Google Cloud Function that runs in the Python runtime and I want some simple logging from the Python program to Stackdriver Logging.

Based on Google's startup guide, this should be straighforward https://cloud.google.com/logging/docs/setup/python

I set up a simple test function to isolate the logging issues I'm seeing

import google.cloud.logging

def logging_test_background(data, context):

    logging_client = google.cloud.logging.Client()
    logging_client.setup_logging()

    logging.info("This should be info")
    logging.debug("This should be debug")
    logging.warning("This should be warning")
    logging.error("This should be error")

In Stackdriver Logging everything gets jumbled. 1. Info is duplicated as an Error 2. Debug doesn't come through 3. Warning is duplicated, but both are error logging level 4. Error is duplicated

Is there something I'm missing in the configuration?


回答1:


You need to create your own logger and add the google-cloud-logging default handler to it:

import logging

from flask import Flask
from google.cloud import logging as cloudlogging

log_client = cloudlogging.Client()
log_handler = log_client.get_default_handler()
cloud_logger = logging.getLogger("cloudLogger")
cloud_logger.setLevel(logging.INFO)
cloud_logger.addHandler(log_handler)

def logging_test_background(data, context):
    cloud_logger.info("info")
    cloud_logger.warning("warn")
    cloud_logger.error("error")
    return 'OK'

Produces:



来源:https://stackoverflow.com/questions/56807817/python-google-cloud-function-logging-severity-and-duplicates

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!