Вход в Django и gunicorn
Я запускаю приложение django с gunicorn, и я не вижу никаких сообщений журнала, которые я извиняю.
Вот код, который записывает журналы:
logger = logging.getLogger(__name__)
def home_page(request):
logger.warning('in home page')
(обратите внимание: этот код определенно работает, поскольку это представление, которое ведет к домашней странице)
Это моя конфигурация журналов из settings.py:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'stream': sys.stdout,
},
},
'loggers': {
'django': {
'handlers': ['console'],
},
},
'root': {'level': 'INFO'},
}
Я запускаю gunicorn в качестве демона со следующими аргументами:
--access-logfile ../access.log --error-logfile --log-level debug ../error.log
Оба access.log и error.log создаются и заполняются сообщениями об увольнении, но я не вижу сообщений, которые пишу.
Спасибо
Ответы
Ответ 1
Я решил свою проблему. Предоставляя детали, чтобы помочь кому-то с аналогичной проблемой.
Решено не смешиваться с журналами gunicorn и django и создавать отдельный файл журнала для django.
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
},
'logfile': {
'level':'DEBUG',
'class':'logging.FileHandler',
'filename': BASE_DIR + "/../logfile",
},
},
'root': {
'level': 'INFO',
'handlers': ['console', 'logfile']
},
}
В этой конфигурации каждое сообщение, написанное с серьезностью >= INFO, будет записано в файл "logfile", расположенный за пределами исходного каталога.