python - 有没有办法将 celery app.task 日志发送到 stackdriver?

标签 python logging google-cloud-platform celery stackdriver

我试图将默认登录 Python 模块创建的 celery 任务日志发送到 Stackdriver(谷歌云平台),但我遗漏了一些东西。

在当前状态下,所有日志都已推送,但我缺少在任务 Python 文件中创建的日志。

class Logger(object):
    def __init__(self, log_level):
        formatter = CustomJsonFormatter(
            '(timestamp)(level)(name)(created)(process)(msecs)(message)'
        )
        formatter.json_ensure_ascii = False
        logger = logging.getLogger()
        logger.setLevel(log_level)
        client = google.cloud.logging.Client.from_service_account_json(
           'key.json')
        # StreamHandler
        # sh = logging.StreamHandler()
        sh = CloudLoggingHandler(client)
        sh.setLevel(log_level)
        sh.setFormatter(formatter)
        logger.addHandler(sh)


from app.utils.logger import Logger
from celery.signals import setup_logging
@setup_logging.connect
def initialize_logger(*args, **kwargs):
    Logger(log_level=log_level)

最佳答案

试试这个:

class Logger(object):
    def __init__(self, log_level):
        formatter = CustomJsonFormatter(
            '(timestamp)(level)(name)(created)(process)(msecs)(message)'
        )
        formatter.json_ensure_ascii = False
        logger = logging.getLogger()
        logger.setLevel(log_level)

        client = google.cloud.logging.Client.from_service_account_json(
           'key.json')
        log_handler = client.get_default_handler()
        cloud_logger = logging.getLogger("cloudLogger")
        cloud_logger.setLevel(log_level)
        cloud_logger.setFormatter(formatter)
        cloud_logger.addHandler(log_handler)

关于python - 有没有办法将 celery app.task 日志发送到 stackdriver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56357089/

相关文章:

java - Eclipse Tomcat 8 服务器上的 Spring MVC 应用程序输出过多的 DEBUG 消息

google-cloud-platform - 如何从云存储中的存储桶中下载对象?

google-cloud-platform - 映射 GCP API/服务的依赖项/要求

spring-boot - GCP 上的 Spring Cloud Consul 健康检查和状态配置

python - 如何从 Asana API 获取用户最旧的任务?

python - Django 模型 - 如何在事后通过 PK 过滤掉重复值?

Python Beautiful Soup .content 属性

python - 如何使用 IntelliJ 远程调试 Python?

c++ - 全局运算符 new 中的 std::ofstream

带有抽象类的 Java 日志记录