Как использовать Django Logging с Heroku Papertrail & Waitress
Итак, я пытался заставить протоколирование работать с Django 1.9.5/Python 3 на сервере Waitress, работающем на Heroku, но пока не смог. Это конфигурация, которую я добавил в настройки Django моего производственного сервера:
settings.py
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"handlers": {
"console": {
"level": "INFO",
"class": "logging.StreamHandler",
"stream": sys.stdout
},
},
"loggers": {
"django": {
"handlers": ["console"],
}
}
}
views.py
logger = logging.getLogger(__name__)
class IndexView(View):
def get(self, request):
logger.info('This is a test INFO error')
return render(request, 'index.html', {})
Есть идеи, почему это ничего не выводит в мой Heroku Papertrail?
1 ответ
Решение
Ваша конфигурация регистрации настроена так, чтобы захватывать все журналы под django
пространство имен, но в вашем views.py
вы используете другое пространство имен, установленное с помощью:
logger = logging.getLogger(__name__) # __name__ resolves to the name of your app.
Вам нужно добавить свое приложение (скажем, оно называется myapp
) к вашей конфигурации регистрации:
"loggers": {
"django": {
"handlers": ["console"],
},
"myapp": {
"handlers": ["console"],
}
}