로그파일이란
온라인 시스템에서 컴퓨터의 모든 실행 내역을 수집하여 기록하는 파일. 장애로부터 복구할 때 이 파일의 정보가 필요하다
프로그램 개발 시에는 동작 상태, 결과 또는 오류 발생시 내용들을 파일에 저장해야 할 경우가 생긴다.
로그가 없다면 프로그램이 동작했는데 정상적으로 동작을 했는지 알기 힘들기 때문이다
로그파일 생성할 때 고려해야할 점
1. 로그 형식 (일자, 시간, 메세지 등의 형식을 정의)
2. 파일 관리 (로그파일 개수, 몇 개의 파일로 관리할 것인지, 일자별로 관리할 것인지..? 로그 파일 보관 주기)
로그파일 생성
파이썬의 logging 모듈
로그를 파일에 출력할 때 사용하는 모듈. 로그는 파일뿐만 아니라 소켓, 이메일, 콘솔 등 다양한 방법으로 출력이 가능하다
로깅 레벨
DEBUG - INFO - WARNING - ERROR - CRITICAL
DEBUG | 프로그램이 작동하는지 진단할 때 사용 |
INFO | 프로그램이 예상대로 작동하는지 확인할 때 사용 |
WARNING | 예상하지 못한 일이 발생했거나 가까운 미래에 발생할 문제가 있을 때 보고 |
ERROR | 심각한 문제로 일부 기능이 작동하지 못할 때 |
CRITICAL | 심각한 에러로 프로그램 자체가 계속 실행될 수 없을 때, 예외를 일으키지 않으면서 에러를 보고할 때 |
Logger 선엄, 출력 형식 지정
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
formmater = logging.Formatter('%(asctime)s %(name)s %(levelname)s %(message)s')
TimedRotatingFileHandler 이용
TimedRotatingFileHandler를 사용하면 로그를 일별 파일에 자동저장할 수 있다
import logging.handlers
timed_file_handler = logging.handlers.TimedRotatingFileHandler(filename='logfile',when='midnight', interval=1, encoding='utf-8')
timed_file_handler.setFormatter(formatter)
timed_file_handler.suffix = "%Y%m%d"
logger.addHandler(timed_file_handler)
when='midnight' (자정마다)
filename='logfile' (logfile.log이름의 로그 파일을 생성)
interval=1 (1일간의 로그를 축적한다)
surfix=%Y%m%d (자정이 지나면 기존 파일은 logfile.log.20220518로 이름이 변경되고 logfile.log파일을 새로 만든다고 한다)
encoding=utf-8 (로그 파일에 한글이 깨지지 않게 하기 위해)
Reference
https://jinisbonusbook.tistory.com/62
https://wordrow.kr/%EC%9D%98%EB%AF%B8/%EB%A1%9C%EA%B7%B8%20%ED%8C%8C%EC%9D%BC/
https://king-rabbit.github.io/python/python-logging/
'Python' 카테고리의 다른 글
[pyautogui] click, keyDown, press not working, python 관리자 권한으로 실행 (0) | 2022.08.19 |
---|---|
[selenium] NoSuchElementException 해결 방법 (0) | 2022.08.19 |
[selenium] cookie 설정 방법 (0) | 2022.08.19 |
[selenium] no such element: Unable to locate element (0) | 2022.08.19 |
[selenium] executable_path has been deprecated, please pass in a Service object (0) | 2022.08.19 |