стек клиентской библиотеки, регистрирующий пропущенную версию серьезности с python - PullRequest
3 голосов
/ 14 мая 2019

Я хотел бы отправить более выразительные записи в журнал в стеке драйвера из стандартного приложения python3 моего движка. Следуя официальной документации , я смог отправить свои журналы на стекдрайвер, и, похоже, метка времени проанализирована правильно.

Но мне не хватает уровней серьезности. Кроме того, я не вижу способа связать журналы для определенного запроса вместе с операцией. Что-то, что, по-видимому, делает java-логинг из коробки.

Для справки вот мой код:

import logging
import os

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

app = Flask(__name__)
log_client = glog.Client(os.getenv('GOOGLE_CLOUD_PROJECT'))
# Attaches a Google Stackdriver logging handler to the root logger
log_client.setup_logging()


@app.route('/_ah/push-handlers/cloudbuild', methods=['POST'])
def pubsub_push_handle():

    logging.info("stdlib info")
    logging.warning("stdlib warn")
    logging.error("stdlib error")

журналы, приводящие к стекдрайверу:

logs in stackdriver

Как вы можете видеть, временные метки и сообщения доступны, когда серьезность странным образом отсутствует и классифицируется как "Любой"

Может ли кто-нибудь указать мне правильное направление или этот уровень инкорпорации еще не доступен?

Спасибо за ваше время! Карстен

1 Ответ

5 голосов
/ 14 мая 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)

app = Flask(__name__)

@app.route('/_ah/push-handlers/cloudbuild', methods=['POST'])
def pubsub_push_handle():
    cloud_logger.info("info")
    cloud_logger.warning("warn")
    cloud_logger.error("error")
    return 'OK'

Производит:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...