[Python] log 저장하기
2023. 11. 8. 13:02ㆍ파이썬
✔️참고
https://yurimkoo.github.io/python/2019/08/11/logging.html
python 라이브브러리 중 logging이라는 라이브러리가 있다.
그것을 이용한다.
########### 로그 셋팅부 START#################
logger = logging.getLogger('admin')
loggerlevel = config['LOG']['loggerlevel']
# 로그 레벨 문자열을 대문자로 변환하여 사용
if loggerlevel == "INFO":
logger.setLevel(logging.INFO)
elif loggerlevel == "DEBUG":
logger.setLevel(logging.DEBUG)
elif loggerlevel == "WARNING":
logger.setLevel(logging.WARNING)
elif loggerlevel == "ERROR":
logger.setLevel(logging.ERROR)
elif loggerlevel == "CRITICAL":
logger.setLevel(logging.CRITICAL)
else:
print("로그 확인 바람")
# 로그 파일 저장 경로와 파일명 설정
log_file = os.path.join(script_dir, "/logs/admin.log")
# 날짜별로 로그 파일 분리 (midnight: 자정에 로그 파일 분리)
handler = TimedRotatingFileHandler(log_file, when="midnight", interval=1, encoding="utf-8")handler.suffix = "%Y-%m-%d"
# 로그 파일명에 붙을 날짜 형식 설정# 로그 메시지 포맷 설정
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)
# 핸들러 추가logger.addHandler(handler)
해석
1. logger라는 변수에 admin이라는 logging을 다루는 객체를 지정합니다.
2. loggerlevel이라는 변수에 보안파일에 설정된 레벨을 가져온다. (보안 파일 : .env 혹은 config.ini등.)
3. loggerlevel에 맞게 logger의 레벨을 지정한다
4. log_file 변수에 경로를 설정한다(파일을 만들기 위함)
5. handler 변수에TimedRotatingFileHandler(파일 경로, when="주기",interval="간격",backupCount="백업파일 개")
그후 코드가 실행되는 곳에 logger.info() / debug() /warn(), critcial() 등으로 메세지를 넣으면 저장 완
결과
728x90
'파이썬' 카테고리의 다른 글
[issue] pytube 버그 발생 (0) | 2024.05.23 |
---|---|
[flask] 이미지,css,js 등 연결 (0) | 2023.11.15 |
[Flask] html,js,css 등 정적 파일 연결 하는법 (2) | 2023.11.07 |
라이브러리 알아보기 (0) | 2023.10.17 |
Python(Colab) folium (0) | 2023.06.09 |