-
[python] logging 모듈 사용하기LOG 2022. 7. 30. 15:13
logging 모듈
logging 모듈은 파이썬 기본 내장 라이브러리로
별도의 설치없이 바로 사용 가능합니다.
파일을 만들어 다음과 같이 log를 셋팅해 줍니다.
설명 ▼
import logging def get_logger(name=None): logger = logging.getLogger(name)
logging 모듈을 import해주고
logger 인스턴스를 생성합니다.
logger.setLevel(logging.DEBUG)
logger의 level을 설정합니다.
LEVEL 설명 DEBUG 간단히 문제를 진단하고 싶을 때, 자세한 정보를 기록 INFO 계획대로 작동하는지에 대한 확인 WARNING(기본) 소프트웨어는 예상대로 작동하고 있지만, 예상치 못한 일의 발생 ERROR 중대한 문제로 인해 소프트웨어가 일부 기능을 수행하지 못함 CRITICAL 작동이 불가능한 수준의 심각한 에러 발생 setLevel()메서드로 level을 설정해주지 않으면
기본값인 warning이 적용됩니다.
formatter = logging.Formatter("%(asctime)s - %(levelname)s - [%(funcName)s:%(lineno)d] - %(message)s")
formatter를 설정하여
다양한 속성을 이용해
원하는 데이터를 출력할 수 있습니다.
속성 format 설명 asctime %(asctime)s 시간 정보 created %(created)f logRecord가 만들어진 시간 filename %(filename)s pathname의 파일명 부분 funcName %(funcName)s log가 기록된 함수 levelname %(levelname)s logging level lineno %(lineno)d log가 기록된 line module %(module)s 모듈 (filename의 이름 부분) message %(message)s 로그된 메시지 name %(name)s logger의 이름 pathname %(pathname)s 로깅 호출이 일어난 소스 파일의 전체 경로명 thread %(thread)d 스레드 ID threadName %(threadName)s 스레드 이름 console = logging.StreamHandler() file_handler_debug = logging.FileHandler(filename="log_debug.log") file_handler_info = logging.FileHandler(filename="log_info.log")
handler instance 생성하여 console 및 파일로 저장할 수 있도록 합니다.
StreamHandler() : 콘솔 출력
FileHandler() : 파일 출력(FileHandler에 로그를 생성할 디렉토리+파일을 설정
파일이 없을 시 : 파일이 생성되면서 로그가 출력
파일이 있을 시 : 기존 파일에 이어서 로그가 출력)console.setLevel(logging.INFO) file_handler_debug.setLevel(logging.DEBUG) file_handler_info.setLevel(logging.INFO)
console 레벨을 INFO로 설정했습니다.
(터미널에 출력되는 로그정보입니다.)
console.setFormatter(formatter) file_handler_debug.setFormatter(formatter) file_handler_info.setFormatter(formatter)
handler 출력을
지정한 formatter 형식으로 나오게 합니다.
logger.addHandler(console) logger.addHandler(file_handler_debug) logger.addHandler(file_handler_info)
logger에 handler를 추가합니다.
이제 셋팅된 log를 실행하기 위해
test 코드를 작성후 실행해 보도록 하겠습니다.
셋팅한 log파일을 import한 다음
함수를 호출하고 test라는 이름의 log인스턴스를 생성합니다.
INFO와 DEBUG를 출력하는 함수 지정 후 실행합니다.test파일을 실행하면 콘솔창에 INFO가 출력되는 것을 확인할 수 있습니다.
(console 레벨을 'INFO'로 셋팅했기 때문에
콘솔 창에 하위 level인 DEBUG는 출력되지 않습니다.)
폴더안에
filehandler로 작성했던
log 파일 2개가 생성된 것을 확인할 수 있습니다.
설정한 formatter 형식으로 저장된 것을 확인할 수 있습니다.
출처 : [python] logging 이용하여 log 쉽게 남기기
[python] Logging 모듈로 로그 남기기'LOG' 카테고리의 다른 글
[python] log.text파일 DB에 자동 적재하기 (0) 2022.07.31 [python] DB에 log 저장하기 (0) 2022.07.30