No aplicativo python-getting-started , para um log que não está marcado como django , ERROR logs de nível aparecem em heroku logs, mas INFO logs não.
Para fazer com que funcione para os registros que não foram marcados com django , ele precisa de uma configuração como a seguinte (semelhante à sua):
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
},
'loggers': {
'': {
'handlers': ['console'],
'level': 'INFO',
},
'django': {
'handlers': ['console'],
'level': 'INFO',
},
},
}
Portanto, se você ajustar sua configuração para ser semelhante ao python-getting-started, incluindo o Procfile, esperamos que funcione.
Aqui está um log que não está marcado como django, que adicionei a views/hello.py :
import logging
logger = logging.getLogger(__name__)
# Create your views here.
def index(request):
logger.error('testing logging!')
logger.info('testing info logging')
logger.debug('testing debug logging')
# return HttpResponse('Hello from Python!')
return render(request, 'index.html')
Quando tentei pela primeira vez, apenas o log de erros apareceu. Quando adicionei a configuração de log no snippet de código acima do anterior, a informação e os logs de erro apareceram. Isso é tudo com DEBUG = False (alterado do código no repo, que tem DEBUG = True ).
Provavelmente, é melhor, em vez de ter a cadeia de caracteres vazia, para que tudo seja registrado, para ter entradas mais específicas de loggers do que apenas a cadeia vazia ( '' ).
Finalmente, em seu arquivo de log, há um caso em que os logs INFO não aparecerão no console ou os logs do Heroku: se for um log INFO para django.request , com sua configuração, ele irá para 'mail_admins' porque propagate é False . Acho que nesse caso, faria mais sentido que propagate fosse definido como True .