[Python] log 저장하기

2023. 11. 8. 13:02파이썬

✔️참고

https://yurimkoo.github.io/python/2019/08/11/logging.html

 

유림's Blog

베짱이가 되고 싶은 개미의 기술 블로그

yurimkoo.github.io

 

 

 

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