如何使用Loggly和Django记录每个会话的唯一ID?

2024-06-14 19:39:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我的Django日志设置如下(下图)。请求ID的过滤器来自这里https://github.com/dabapps/django-log-request-id。我按照教程设置:https://www.loggly.com/docs/python-http/。但是,他们提供的配置文件似乎覆盖了标准格式化程序,这意味着它不包括请求id

有没有一种方法可以同时使用request\u id和Loggly?基本上,我希望Loggly总是记录一个请求id,它是唯一的,并且来自于插件logu请求_id.filters.RequestIDFilter请求过滤器. 你知道吗

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'request_id': {
            '()': 'log_request_id.filters.RequestIDFilter'
        }
    },
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
        'json': {
            'format': '{ "loggerName":"%(name)s", "timestamp":"%(asctime)s", "fileName":"%(filename)s", "logRecordCreationTime":"%(created)f", "functionName":"%(funcName)s", "levelNo":"%(levelno)s", "lineNo":"%(lineno)d", "time":"%(msecs)d", "levelName":"%(levelname)s", "message":"%(message)s"}',
        },
        'standard': {
            'format': '%(levelname)-8s [%(asctime)s] [%(request_id)s] %(name)s: %(message)s'
        },
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'filters': ['request_id'],
            'formatter': 'standard',
            'stream': sys.stdout,
        },
        'loggly': {
            'level': 'DEBUG',
            'class': 'loggly.handlers.HTTPSHandler',
            'filters': ['request_id'],
            'formatter': 'standard',
            'url': 'https://logs-01.loggly.com/inputs/TOKEN/tag/python',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console', ],
            'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
        },
        'root': {
            'handlers': ['loggly', ],
            'level': os.getenv('DJANGO_LOG_LEVEL', 'DEBUG'),
        }
    }
}

Tags: httpsdebugcomidformat过滤器messagerequest