반응형
Python logging 사용하기
python으로 개발하면서 로그를 남기고 저장하기위한 기본 모듈인 logging에 대한 설명이다.
logging 모듈을 사용하는 방법은 아래와 같다.
debug, info, warning, error, critical 5단계로 로그를 구분하여 등록 할 수 있다.
import logging
logging.debug("test debug log")
logging.info("info log")
logging.warning("warring !!!!")
logging.error("bug bug bug bug")
logging.critical("critical !! ~~")
위 코드를 실행하면 warning, error, critical 에 해당하는 로그만 출력된다.
이유는 기본설정이 warning 이상의 로그만 출력되도록 설정되어있다.
모든 로그가 출력되도록 하려면
import logging 아래 다음 코드를 넣어준다.
logging.basicConfig(level=logging.DEBUG) #기본값은 warning (warning 이상의 로그만 출력됨)
이제 코드를 실행하면 입력한 모든 로그가 콘솔에 출력된다.
로그를 콘솔에 출력하지 않고 파일에 저장하려면 아래와 같이 filename 정보를 넣어주면 된다.
logging.basicConfig(filename='./test.log', level=logging.DEBUG) #기본값은 warning (warning 이상의 로그만 출력됨)
이렇게 로그를 저장하게 되면 하나의 파일에 용량이 커지게되고, 나중에 파일 용량이 너무 커서 열지 못하는 문제가 발생 할 수 있다.
이런 문제를 해결하기위해 RotatingFileHandler를 사용하여 로그저장파일의 크기가 커지면 다른파일에 등록하도록 할 수 있다.
import logging
from logging.handlers import RotatingFileHandler
logger = logging.getLogger(__name__)
fileHandler = RotatingFileHandler('./myLogger.log', maxBytes=1024*5, backupCount=5)
fileHandler.setFormatter(logging.Formatter('%(asctime)s [%(levelname)s] [%(filename)s:%(lineno)s] >> %(message)s'))
logger.addHandler(fileHandler)
logger.setLevel(logging.DEBUG)
logger.debug("test debug log")
logger.info("info log")
logger.warning("warring !!!!")
logger.error("bug bug bug bug")
logger.critical("critical !! ~~")
전체 코드는 위와 같고
중요한 부분은 아래와 같다.
RotatingFileHandler('./myLogger.log', maxBytes=1024*5, backupCount=5)
maxByte = 해당 용량이상이 되면 해당파일을 백업하고 새로운 파일에 로그를 저장한다.
backupCount = 백업된 파일을 몇개 유지할것인지 설정한다. (5로 설정되면 5개의 백업파일을 유지한다.)
반응형
'Program' 카테고리의 다른 글
CentOS7 Service 만들기 (0) | 2018.05.11 |
---|---|
CentOS7 실행중인 프로세스 확인/종료 (0) | 2018.05.07 |
Pycharm을 이용한 개발PC의 가상환경을 CentOS7의 가상환경에 적용하기 (0) | 2018.05.04 |
CentOS7 virtualenv 설치 및 사용 (0) | 2018.05.04 |
CentOS에 PIP 설치하는 방법 (0) | 2018.05.04 |