프로그래밍/Python

Using Rotating-Logging in Python

bluecandyg 2022. 8. 17. 13:47
  • Python 에서 Log 를 생성할 때 사용하는 기본 내장형 모듈
  • Linux 기반에서는 많이 사용 : tail -F xxxx.log 식으로 사용하며 모니터링 용으로도 사용함

  • 아래 코드는 10Mb 단위의 로그 파일을 최대 5개까지만 생성하여 로그 유지
  • 용량 기준으로만 생성되고 삭제되기 때문에 로그량에 따라 최대 갯수를 늘리거나 줄여야함
import logging
from logging.handlers import RotatingFileHandler

# CREATE LOG - GLOBAL PARAMETER
logger = logging.getLogger('xxx')

def setting_logging():

    # file max size를 10MB로 설정 
    file_max_bytes = 10 * 1024 * 1024

    # 로그의 출력 기준 설정
    logger.setLevel(logging.INFO)

    # log 출력 형식
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

    # log 출력
    stream_handler = logging.StreamHandler()
    stream_handler.setFormatter(formatter)
    logger.addHandler(stream_handler)

    # log를 파일에 출력
    # file_handler = logging.FileHandler('./log/xxx_sending.log')
    file_handler = RotatingFileHandler('./log/xxx_sending.log', maxBytes=file_max_bytes, backupCount=5)
    file_handler.setFormatter(formatter)
    logger.addHandler(file_handler)
    
    
# Using Sample
logger.info('# Zip File Extract START.')

 

  • Result Sample
2021-12-29 08:37:30,162 - xxx - INFO - ######################################
2021-12-29 08:37:31,262 - xxx - INFO - # xxxx Sending PROCESS START.
2021-12-29 08:43:28,117 - xxx - INFO - ######################################
2021-12-29 08:43:30,265 - xxx - INFO - # xxxxx Sending PROCESS START.
2021-12-29 08:43:30,272 - xxx - INFO - # Zip File Search START.
2021-12-29 08:43:30,273 - xxx - INFO - # Total Zip File Search Count : 10