Ведение журнала Python Fast API с помощью Watchtower

Я написал приведенный ниже код для записи журналов в облачные часы с помощью сторожевой башни.

      import os
import sys
import time
import boto3
import watchtower
import logging.handlers
from scripts.config import app_configurations

def fast_logging():
    try:
        boto3_session = boto3.session.Session()
        LOG_GROUP = "Fast-Logging"
        log_level = DEBUG
        stream_name = os.path.join("fast_logging"+ "_" + time.strftime("%Y%m%d") + '.log')

        logger = logging.getLogger("Fast-Logger")
        logger.setLevel(log_level)

        formatter = logging.Formatter('%(name)s - %(levelname)s - %(filename)s - %(module)s: %(funcName)s: '
                                      '%(lineno)d - %(message)s')
        log_handler = watchtower.CloudWatchLogHandler(log_group=LOG_GROUP, boto3_session=boto3_session,
                                                      stream_name=stream_name)
        log_handler.setFormatter(formatter)
        logger.addHandler(log_handler)
        return logger
    except Exception as e:
        raise e


logger = fast_logging()

Приведенный выше код работает для обычного кода Python, но не может выгружать журналы в поток облачных часов для журналов в службах Fast API.

1 ответ

Я обнаружил, что этот код работает для меня

      import os
import time
import boto3
import watchtower
import logging.handlers

def fast_logging():
    try:
        LOG_GROUP = "Fast-Logging"
        log_level = "INFO"
        stream_name = os.path.join("fast_logging"+ "_" + time.strftime("%Y%m%d") + '.log')

        logger = logging.getLogger("Fast-Logger")
        logger.setLevel(log_level)

        formatter = logging.Formatter('%(name)s - %(levelname)s - %(filename)s - %(module)s: %(funcName)s: '
                                      '%(lineno)d - %(message)s')
        log_handler = watchtower.CloudWatchLogHandler(log_group=LOG_GROUP,
                                                      stream_name=stream_name)
        log_handler.setFormatter(formatter)
        logger.addHandler(log_handler)
        return logger
    except Exception as e:
        raise e


logger = fast_logging()
logger.info("test this")
Другие вопросы по тегам