본문 바로가기
Python

[Python] Logging 사용하기. FileRotate, TimeRotate

by bryan.oh 2023. 1. 24.
반응형

Python Logging
RotatingFileHandler, TimedRotatingFileHandler

예제

import logging
from logging.handlers import RotatingFileHandler, TimedRotatingFileHandler
import time

# Create a rotating file handler with max size and backup count
file_handler = RotatingFileHandler('app.log', maxBytes=1024*1024*100, backupCount=10)

# Create a file handler that rotates log files by date
date_handler = TimedRotatingFileHandler("app_%Y-%m-%d.log", when='D', interval=1, backupCount=10)

# Create a console handler
console_handler = logging.StreamHandler()

# Create a logging format
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
date_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)

# Create a logger
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
logger.addHandler(file_handler)
logger.addHandler(date_handler)
logger.addHandler(console_handler)

# Example usage
logger.debug("Debug message")
logger.info("Info message")
logger.warning("Warning message")
logger.error("Error message")
logger.critical("Critical message")

 

RotatingFileHandler는 크기가 100MB를 초과할 때 로그 파일을 회전하고 마지막 10개의 백업을 유지하도록 설정됩니다. 
이렇게 하면 로그 파일이 너무 커지지 않도록 하고 특정 수의 백업을 유지합니다.

TimedRotatingFileHandler는 매일 로그 파일을 순환하고 마지막 10개의 백업을 유지하도록 설정됩니다. 
파일 이름의 일부로 날짜를 사용하여 매일 새 로그 파일을 생성하도록 설정되어 있습니다.
이렇게 하면 특정 시간에 발생한 로그를 찾기 편합니다. 좀 더 세분화 해서 매일이 아니라 매시로 설정을 변경 할 수 있습니다.

'app.log' 파일, 'app_date.log' 파일 및 콘솔에 다양한 수준의 메시지를 기록합니다.

콘솔 로그는 개발할 때 편합니다.

728x90
반응형

댓글