Серьезность и дубликаты журналирования функции облака Python Google - PullRequest
2 голосов
/ 28 июня 2019

Я работаю над простой облачной функцией Google, которая запускается во время выполнения Python, и мне нужна простая регистрация из программы Python в Stackdriver Logging.

Исходя из руководства по запуску Google, это должно быть просто https://cloud.google.com/logging/docs/setup/python

Я установил простую функцию тестирования, чтобы изолировать проблемы с журналированием, которые я вижу

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")

В журнале Stackdriver все перемешивается. enter image description here 1. Информация дублируется как ошибка 2. Отладка не проходит 3. Предупреждение дублируется, но оба уровня журнала ошибок 4. Ошибка дублируется

Что-то мне не хватает в конфигурации?

1 Ответ

1 голос
/ 28 июня 2019

Вам необходимо создать собственный регистратор и добавить к нему обработчик по умолчанию google-cloud-logging:

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'

Производит:

enter image description here

...