IT 대장간

[파이썬] 로그 남기기 본문

Programing/Python

[파이썬] 로그 남기기

태장장이 2021. 3. 16. 17:45

1. 로그 레벨

import logging

logging.basicConfig(level=logging.DEBUG, format= "%(asctime)s [%(levelname)s] %(message)s")
logging.basicConfig(level=logging.WARNING, format= "%(asctime)s [%(levelname)s] %(message)s")

logging.debug("개발 단계 오류 , level : 1")
logging.info("사용자 접근 가능한 오류, level 2")
logging.warning("경고 , level : 3")
logging.error("에러 발생, level : 4")
logging.critical("심각한 오류, level :5")

1) logging.basicConfig (level = 값) 에서 출력되는 로그의 수준을 정할 수 있다. DEBUG로 지정할 경우 DEBUG(1) 수준 이상의 레벨은 모두 출력

 

 

 

 

Level = DEBUG

 

 

Level = WARNING, WARNING 이상의 레벨만 출력

 

 

2. 로그 출력 (+파일생성)

#터미널과 파일에 함께 로그 남기기
import logging
from datetime import datetime

Logformat = logging.Formatter("%(asctime)s [%(levelname)s] %(message)s") #시간, 로그레벨, 메세지 형태로 로그 작성
logger = logging.getLogger()

#로그 레벨 설정

logger.setLevel(logging.DEBUG) # 로그 레벨 : DEBUG 이상 출력

#스트림(터미널 출력)
streamHandler = logging.StreamHandler() #Stream에서 로그 출력을 하는 핸들러 생성

streamHandler.setFormatter(Logformat) #위에서 선언한 로그 포맷으로 설정
logger.addHandler(streamHandler) # 핸들러 추가

#파일
filename = datetime.now().strftime("mylogfile_%Y%m%d%H%M%S.log") #저장되는 파일 이름 지정 : mylogfile_20210301142044.log 
fileHandler = logging.FileHandler(filename, encoding="utf-8") # 파일형식 로그 핸들러 생성

fileHandler.setFormatter(Logformat) #위에서 선언한 로그 포맷으로 설정 
logger.addHandler(fileHandler) # 핸들러 추가

logger.debug("로그 테스트")

 

 

코드를 실행해보면??

 

: VSCODE의 터미널을 통해 로그 메세지가 출력되고, 파일이 자동적으로 생성되어 남는다.

파일로 생성된 로그 파일

 

터미널라인에 출력되는 로그 메세지