반응형
Django자체에 앱별로 로그를 쌓게 하는 기능은 따로 없는 듯 하다.
그나마 아래 방법을 찾았는데, 앱별로 분개가 가능할듯 하다.
테스트는 아직 미진행 -> 진행완료
테스트해봤는데 아주 잘된다. 굿.
import os
import datetime
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework.authtoken',
]
MY_APPS = [
'accounts'
]
INSTALLED_APPS += MY_APPS
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handlers': {
},
'loggers': {
}
}
MY_LOGGERS = {}
MY_HANDLERS = {}
for app in MY_APPS:
directory = os.path.dirname(os.path.dirname(__file__)) + "/var/log/" + app + "/"
if not os.path.exists(directory):
os.makedirs(directory)
MY_HANDLERS[app] = {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': directory + '/' + str(datetime.date.today()) + '.log',
'maxBytes': 1024*1024*5,
'backupCount': 5,
'formatter': 'verbose'
}
MY_LOGGERS[app] = {
'handlers': [app],
'level': 'DEBUG',
'propagate': True,
}
LOGGING['handlers'].update(MY_HANDLERS)
LOGGING['loggers'].update(MY_LOGGERS)
참고 :
https://stackoverflow.com/questions/34911068/django-how-can-we-generate-app-wise-log-with-app-name-directory-and-todaydate-lo
반응형
'개발 > django' 카테고리의 다른 글
Rest Framework (0) | 2019.01.31 |
---|---|
Postman POST 오류 (0) | 2019.01.23 |
로그 백업 방식 (logging - handlers) (0) | 2019.01.22 |
Fake (0) | 2019.01.17 |
MacOS에 설치하기 (0) | 2019.01.09 |