-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
flask 다양한 기능: 로그 다루기에 강의 오류가 아닐까 합니다.
21.12.03 15:19 작성 조회수 136
0
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)
- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다
- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다
- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
flask 다양한 기능: 로그 다루기 11분 6초
강의 내용에 일부 오류가 있어요.
```
if not app.debug:
```
구문이 `if __name__ == '__main__' 보다 먼저 실행됩니다.
때문에 app.debug 는 False 인 상태가 되고 해당 구문은 실행되서 log handler 를 설정하게 됩니다. 그래서 파일이 만들어집니다.
설명하신 것처럼 작동하려면 if not app.debug 이하의 설정문장들이 메인 문장 안에 들어가야 합니다.
가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
flask 다양한 기능: 로그 다루기 (자료 업데이트)
강의실 바로가기
답변을 작성해보세요.
0
잔재미코딩 DaveLee
지식공유자2021.12.06
안녕하세요.
영상을 찍을 때에는 영상과 같이, 설명드린 그대로 동작한 것으로 이해가 되기도 하더라고요.
그런데, 말씀하신대로, 지금에서 테스트를 해보니, 이슈가 있는 것으로 확인이 되었습니다. 이를 처리하는 코드는 다양하게 만들 수 있지만, 다음과 같이 가이드를 드리는 것이 가장 선명하게 코드를 작성할 수 있는 부분 같아서, 다음과 같이 관련 자료를 모두 업데이트하였습니다.
어차피 다음과 같은 코드는 로깅을 테스트하기 위해, 최대한 간결한 형태로 구성한 것인데, app.run() 에 적용을 하는 debug 옵션은 app.run() 이후 코드에 적용이 되는 상황인데, app.run() 이후 코드는 flask app 이 동작을 멈춰야 실행이 되는 상황이라서, 복잡한 코드가 아닌 단순 테스트를 위한 코드를 위해서는, __main__ 내부에 넣기보다는, 위와 같이 간결하게 별도 옵션으로 인지하여, 설정을 하는 것이 더 합리적으로 보입니다.
app = Flask(__name__)
# 2021.12.06 업데이트
# 최근에는 app.debug 값을 app.run 에서 설정하기 전에, 미리 설정해주어야, 하단부 if not app.debug 에 설정이
# 적용되는 것을 확인하였습니다. 따라서, app.debug 값을 미리 설정해주는 코드를 추가하였습니다
# 즉, app.run 에서의 debug 옵션과, app.debug 값을 기반으로 한 logging 설정은 분리된 설정으로 이해하시면 좋을 것 같습니다
app.debug = False
if not app.debug:
import logging
from logging.handlers import RotatingFileHandler # logging 핸들러 이름을 적어줌
file_handler = RotatingFileHandler(
'dave_server.log', maxBytes=2000, backupCount=10)
file_handler.setLevel(logging.WARNING) # 어느 단계까지 로깅을 할지를 적어줌
# app.logger.addHandler() 에 등록시켜줘야 app.logger 로 사용 가능
app.logger.addHandler(file_handler)
답변 1