Я не могу заставить работать журналы в моем приложении Django, работающем на Elastic Beanstalk.
Settings.py:
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"verbose": {"format": "%(asctime)s %(levelname)s %(module)s: %(message)s"}
},
"handlers": {
"django": {
"level": "INFO",
"class": "logging.FileHandler",
"filename": "/opt/python/log/django.log",
"formatter": "verbose",
}
},
"loggers": {
"django": {"handlers": ["django"], "level": "INFO", "propagate": True}
},
}
Если я изменю уровень журнала на DEBUG, будетможет быть много действий в журналах, но все равно он не будет содержать вызовов logger.info () или logger.debug ().
.ebextensions / logging.config:
commands:
01_create_file:
command: touch /opt/python/log/django.log
02_change_permissions:
command: chmod g+s /opt/python/log/django.log
03_change_owner:
command: chown wsgi:wsgi /opt/python/log/django.log
Как использовать ведение журнала:
import logging
logger = logging.getLogger("django")
logger.info("Testing")
Когда я запускаю приложение локально, журналы успешно отправляются на консоль с использованием следующей настройки:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django': {
'handlers': ['console'],
'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
},
}