Python Logging

남영민·2023년 4월 11일
0

python의 log를 s3에 업로드하기 위해 사용한 log class 입니다.

[logging class]

import logging
import io

class LogHandler:

    string_io_log = io.StringIO()

    @staticmethod
    def get_logger(logger_name: str):
        # logger 생성
        logger = logging.getLogger(logger_name)
        formatter = formatter = logging.Formatter("%(asctime)s %(levelname)s \t[%(filename)s:%(lineno)s - %(funcName)s()] %(message)s")
        logger.setLevel(logging.INFO)
        
        # 콘솔에 log를 찍기 위한 일반적인 stream handler 생성
        console_handler = logging.StreamHandler()
        console_handler.setFormatter(formatter)
        # logger에 console_handler 추가
        logger.addHandler(console_handler)
        
        # string io를 사용한 log 생성
        string_io_handler = logging.StreamHandler(string_io_log)
        string_io_handler)
        .setFormatter(formater)
        # logger에 string_io_handler 추가
        logger.addHandler(string_io_handler)
        
        return logger

[사용]

import LogHandler

log = LogHandler.get_logger("loger_test")

log.info("log test")

S3Handler().str_log_save(LoggingHandler.string_buffer.getvalue())
LogHandler.string_buffer.truncate(0)
LogHandler.string_buffer.seek(0)

참고 : https://medium.com/nerd-for-tech/simple-aws-s3-logging-in-python3-using-boto3-cfbd345ef65b

profile
성장하는 개발자

0개의 댓글