무슨 로그 파일 저장하는 것이 이렇게나 어렵노?
Flask + Gunicorn + Nginx 이렇게 궁합을 싸 놓으니, 어데 저장되는지 누가 주체인지도 모르겠고
어렵다.
그냥 내가 원할 때 저장하고 파일 위치도 쉽게 알 수 있으면 되는데.....
일단 아래 코드 적용해서 돌려보니 작업 디렉토리에 파일이 생기긴 하네.
잘 모르지만 일단 아래 코드로 적용
원본 코드 위치 - https://gist.github.com/andrisasuke/0d5958c076fcf44e6a15c9d99d9c8c86
# from https://gist.github.com/andrisasuke/0d5958c076fcf44e6a15c9d99d9c8c86
import logging
from logging import Formatter
from logging.handlers import RotatingFileHandler
logger = logging.getLogger(__name__)
file_handler = RotatingFileHandler('test.log', maxBytes=10000, backupCount=1)
handler = logging.StreamHandler()
file_handler.setFormatter(Formatter(
'%(asctime)s %(levelname)s: %(message)s '
'[in %(pathname)s:%(lineno)d]'
))
handler.setFormatter(Formatter(
'%(asctime)s %(levelname)s: %(message)s '
'[in %(pathname)s:%(lineno)d]'
))
logger.addHandler(file_handler)
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
로그를 찍어보니 아래처럼 나오네
2021-07-27 14:22:08,710 INFO: {'requests': ...} [in iews.py:117]
2021-07-27 14:22:08,739 ERROR: ERR NotUniqueError : Tried to save duplicate ...'}) [in ews.py:205]
포맷에 들어가는 로그 내부 예약어를 알려면 아래 링크로 들어가서 보세요.
https://docs.python.org/2/library/logging.html#logrecord-attributes
위에서 사용한 몇개만 가져오면,
asctime | %(asctime)s | Human-readable time when the LogRecord was created. By default this is of the form ‘2003-07-08 16:49:45,896’ (the numbers after the comma are millisecond portion of the time). |
filename | %(filename)s | Filename portion of pathname. |
levelname | %(levelname)s | Text logging level for the message ('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'). |
levelno | %(levelno)s | Numeric logging level for the message (DEBUG, INFO, WARNING, ERROR, CRITICAL). |
lineno | %(lineno)d | Source line number where the logging call was issued (if available). |
BJ.
Erik Karits 님의 사진, 출처: Pexels
'IT > 파이썬' 카테고리의 다른 글
파이썬 리스트 축약 문법 : 리스트 항목에 어떤 특정함수를 일괄 적용 (0) | 2021.07.28 |
---|---|
Flask RESTful API 작성시 넘어오는 변수값 확인 (0) | 2021.07.27 |
윈도우 flask gunicorn 에러 발생 시 대안 - No module named 'fcntl' (0) | 2021.07.27 |
Flask REST API 구현 중 파일 업로드는? (0) | 2021.07.01 |
Flask JWT 로그인 기능을 위한 자료 조사 - flask-jwt-extended (0) | 2021.07.01 |