У меня есть следующая настройка файла YAML для моего регистратора в моем проекте:
---
version: 1
disable_existing_loggers: False
formatters:
simple:
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
colored:
(): "colorlog.ColoredFormatter"
datefmt: "%Y-%m-%d %H:%M:%S"
format: "%(white)s%(asctime)s.%(msecs)03d%(reset)s - %(cyan)s[%(module)s.%(funcName)s]%(reset)s - %(log_color)s[%(levelname)s] :=>%(reset)s %(message)s"
log_colors:
DEBUG: purple
INFO: blue
WARNING: yellow
ERROR: red
CRITICAL: red,bg_white
handlers:
console:
class: logging.StreamHandler
level: DEBUG
formatter: colored
stream: ext://sys.stdout
root:
level: INFO
handlers: [console]
Я хотел бы добавить обработчик GCP Stackdriver в этот файл, но у меня возникла проблема. Обработчик облачного журнала требует, чтобы клиент был установлен, и я не уверен, как это сделать в YAML.
Я пытался добавить следующее:
handlers:
stackdriver:
class: google.cloud.logging.handlers.CloudLoggingHandler
client: ext://google.cloud.logging.Client
name: my-project-log
Однако я получаю следующую ошибку:
TypeError: logger() missing 1 required positional argument: 'name'
Любые подсказки о том, как я могу настроить обработчик журнала облака GCP из файла YAML? Мне не повезло, даже когда я изменил class
на ()
, чтобы определить пользовательский объект для ведения журнала.