1

I have written a below code to write the logs into cloudwatch using 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()

The above code is working for the normal python code but not able to dump logs into cloudwatch stream for the logs in Fast API services.

1 Answers1

0

I found that this code works for me

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")
Jonathan Math
  • 101
  • 2
  • 7