728x90
반응형
import datetime
import logging
import logging.handlers
def get_logger(name=None):
logger = logging.getLogger(name)
logger.setLevel(logging.INFO)
# 중복 방지 설정
logger.propagate = False
# 기존 핸들러 제거 (필요 시)
if logger.hasHandlers():
logger.handlers.clear()
# log format
formatter = logging.Formatter("%(asctime)s | %(levelname)s | %(filename)s:%(lineno)d | %(message)s", datefmt="%Y-%m-%d %H:%M:%S")
# log 파일에 기록 (일별 생성)
console = logging.StreamHandler()
pwd = '{log 쌓을 경로}'
today = datetime.datetime.now().strftime("%Y-%m-%d")
handler_info = logging.handlers.TimedRotatingFileHandler(
filename=f"{pwd}/{today}.log",
when="midnight",
interval=1,
encoding="utf-8")
handler_error = logging.handlers.TimedRotatingFileHandler(
filename=f"{pwd}/{today}.log",
when="midnight",
interval=1,
encoding="utf-8")
handler_info.setFormatter(formatter)
handler_error.setFormatter(formatter)
# level setting
console.setLevel(logging.INFO)
handler_info.setLevel(logging.INFO)
handler_error.setLevel(logging.ERROR)
# format
console.setFormatter(formatter)
handler_info.setFormatter(formatter)
handler_error.setFormatter(formatter)
# add handler
logger.addHandler(console)
logger.addHandler(handler_info)
logger.addHandler(handler_error)
return logger
728x90
반응형
'개발 > PYTHON' 카테고리의 다른 글
PYTHON - LOG 파일명 (0) | 2024.11.25 |
---|---|
PYTHON - 재귀 함수 (피보나치, 하노이의 탑, 최소공배수 등) (0) | 2024.11.21 |
Python 용량 변환 (0) | 2024.11.11 |
Python IMAP 메일 연동 (1) | 2024.11.08 |
CGI, WSGI, ASGI (4) | 2024.09.12 |