Logging 질문
LOGGING ={
'version':1,
'disable_existing_loggers':False,
'handlers':{
'file':{
'level':'DEBUG',
'class':'logging.FileHandler',
'filename':os.path.join(BASE_DIR, 'logs/django.log'),
'formatter':'json',
},
'console':{
'class':'logging.StreamHandler',
'formatter':'json',
},
},
'formatters':{
'json':{
'class': 'pythonjsonlogger.jsonlogger.JsonFormatter',
'format': '%(asctime)s %(levelname)s %(name)s %(message)s',
},
},
'root':{
'handlers':['file','console'],
'level':'DEBUG',
},
'loggers':{
'django':{
'handlers':['file','console'],
'level': 'DEBUG',
'propagate':False,
},
},
runserver 하는 순간 {"asctime": "2025-02-14 20:41:50,823", "levelname": "DEBUG", "name": "django.utils.autoreload", "message": "File C:\\Users\\moon\\miniforge3\\envs\\workout\\Lib\\site-packages\\PIL\\__init__.py first seen with mtime 1739352505.781736"} 이런 변경한 적 없는 것들이 자동리로드 되면서 콘솔에 계속 올라옵니다. 이유가 궁금합니다.
Answer 1
0
안녕하세요 ansghltjd9님,
Django의 runserver를 실행할 때 자동으로 리로드(Auto-reload)가 발생하는 이유는 django.utils.autoreload가 파일 변경을 감지하는 방식 때문입니다.
Django의 개발 서버 (runserver)는 코드 변경을 감지하여 자동으로 재시작하는 기능이 있습니다. 이 기능은 django.utils.autoreload 모듈을 사용하여 특정 디렉터리의 파일 변경 여부를 감지합니다. 파일의 변경을 감지하는 주요 방식은 다음과 같습니다.
파일의 수정 시간 (
mtime) 감지Django는 실행 중인 Python 파일들의
mtime (modified time, 수정 시간)을 주기적으로 확인합니다.mtime이 변경되면 Django는 이를 코드 변경으로 간주하고 자동으로 리로드합니다.
sys.modules를 이용한 파일 추적
Python이 로드한 모든 모듈 (
sys.modules)을 순회하면서 해당 파일의 변경 여부를 확인합니다.
로그에서 보시면 ...
{
"asctime": "2025-02-14 20:41:50,823",
"levelname": "DEBUG",
"name": "django.utils.autoreload",
"message": "File C:\\Users\\moon\\miniforge3\\envs\\workout\\Lib\\site-packages\\PIL\\__init__.py first seen with mtime 1739352505.781736"
}Django가 PIL (Pillow 라이브러리)의 __init__.py 파일을 감지하고, 이 파일의 mtime 값(1739352505.781736)을 처음 인식했다고 로그에 남겼습니다.
보기가 불편하시다면 자동 리로드 기능을 끄고 실행하는 방법도 있습니다.
python manage.py runserver --noreload이렇게 하면 django.utils.autoreload가 동작하지 않으므로, 불필요한 리로드를 방지할 수 있습니다.
Dockerfile 질문
0
76
2
0.0.0.0:8000 접속이 안됩니다
0
297
2
블로그 게시
0
171
2
{{form.as_p}} 사용방법 질문드립니다.
0
230
2
reverse vs reverse_lazy 사용 이유와 차이점을 이해하지 못 했습니다.
0
214
1
urls.py에 라우팅 하는 부분에서요.
0
162
2
handler, static 질문이 있습니다.
0
188
2
build: context 부분이 이해가 되지 않습니다.
1
215
3
직렬화 질문
0
152
1
Celery 수업중 세팅 질문드립니다.
1
181
1
6-1 질문
1
216
1
channels alternative?
1
207
1
크롬에서 서드 파티 쿠키 제한이라는 에러가 뜨는데 혹시 추가로 어떤걸 업데이트 해야지 정상작동 되는지 알 수 있을까요?
0
741
2
dock 환경설정에 대해 잘 이해가 가지 않습니다.
1
282
1
Django Authentication 중에 로그아웃 기능이 안됩니다 ㅠㅠ
1
344
1
학습방식
1
321
2
docker, flower 질문
0
303
1
docker 컨테이너 환경설정 문제
0
1642
1
celery-worker, beat, flower, docker-compose 질문
1
635
1
4-1 공식문서
1
252
1
장고 프로젝트 질문
2
292
1
복습
1
257
1
온라인 ide
1
325
2
vs code
1
367
2

