Python/ETC

[python] 터미널 및 파일 로그 처리

꼰대 2021. 4. 16. 16:36

로그 레벨은 총 5가지
notset < debug < info < warning < error < critical  (로그 레벨 순)

에러 로그 수준


import logging
from logging.handlers import TimedRotatingFileHandler
from datetime import datetime
import os

log_dir = './logs'

# 폴더가 없다면 폴더 생성
if not os.path.exists(log_dir):
    os.mkdir(log_dir)

logFormatter = logging.Formatter("%(asctime)s [%(levelname)s] %(message)s")
logger = logging.getLogger()# 로그레벨
logger.setLevel(logging.DEBUG)

# 콘솔 출력
streamHandler = logging.StreamHandler()
streamHandler.setFormatter(logFormatter)
# 콘솔 출력 로그레벨 변경
# streamHandler.setLevel(logging.CRITICAL)
logger.addHandler(streamHandler)

# 파일 출력
filename = log_dir+'/log.log'
fileHandler = TimedRotatingFileHandler(filename=filename, when='midnight', interval=1, encoding='utf-8')
fileHandler.setFormatter(logFormatter)
# 자정이 지나면 전일 파일은 log.log.년월일로 변경
fileHandler.suffix = '%Y%m%d'
# 파일 출력 로그레벨 변경
# fileHandler.setLevel(logging.ERROR)
logger.addHandler(fileHandler)

 

- 다른 파일에서 로그 사용 (위 파일 이름이 log_process.py)
from log_process import logging


logging.debug("debug 로그")
logging.info("info 로그")
logging.warning("warning 로그")
logging.error("error 로그")
logging.critical("critical 로그")

반응형