RotatingFileHandler 설정
Python에서 제공하는 로깅 중 'logging.handlers.RotatingFileHandler'은 로그를 파일에 기록하면서 일정 크기 단위로 백업을 해준다. 이를 Django에서 사용하기 위해서는 setting.py 파일에 아래와 같이 handler 설정을 추가한다.
'handlers': {'file': {'level': 'DEBUG','class': 'logging.handlers.RotatingFileHandler','filename': os.path.join(BASE_DIR, 'logs/logfile'),'formatter': 'verbose','maxBytes': 1024 * 1024 * 1, # 1MB'backupCount': 5,},},cs
개발 환경에서 사용 시 주의할 점
위와 같이 설정하면 로그 파일이 지정한 사이즈에 도달하였을 때, 백업 및 신규파일이 생성된다. 그러나 runserver를 이용하여 개발하는 경우 아래와 같은 에러가 발생할 수 있다.
Traceback (most recent call last):File "c:\python27\Lib\logging\handlers.py", line 77, in emitself.doRollover()File "c:\python27\Lib\logging\handlers.py", line 140, in doRolloveros.rename(self.baseFilename, dfn)WindowsError: [Error 32]cs
이런 경우에는 runserver 실행 시 '--noreload' 옵션을 추가하여 해결할 수 있다.
python manage.py runserver 0.0.0.0:8000 --noreloadcs
참고
- Django logging with RotatingFileHandler error
참고: 실행환경
- Windows 7 Professional K
- Python 2.7.6
- Django 1.9.7
0 댓글