Ho creato un'app su Heroku e spingo la mia app Django su di esso.Accesso a Django su Heroku non visualizzato
Monitoro i registri utilizzando heroku logs --tail
per vederli in tempo reale.
Poi, nel mio settings.py
, ho il seguente:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': ('%(asctime)s [%(process)d] [%(levelname)s] ' +
'pathname=%(pathname)s lineno=%(lineno)s ' +
'funcname=%(funcName)s %(message)s'),
'datefmt': '%Y-%m-%d %H:%M:%S'
},
'simple': {
'format': '%(levelname)s %(message)s'
}
},
'handlers': {
'null': {
'level': 'DEBUG',
'class': 'logging.NullHandler',
},
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'verbose',
'stream': sys.stdout,
}
},
'loggers': {
'MYAPP': {
'handlers': ['console'],
'level': 'INFO',
}
}
}
Poi, quando voglio registrare qualcosa, io uso il seguente:
import logging
import sys
logger = logging.getLogger('MYAPP')
logger.info('My message here...')
sys.stdout.flush()
ma non si riflette nella i miei registri
mio Procfile
:
web: gunicorn myapp.wsgi --log-file=-
EDIT: Curiosamente, posso effettivamente cambiare "myapp" a "Django" quando definisco la mia registrazione config e anche logging.getLogger('django')
e che mi permette di vedere qualsiasi cosa utilizzando print
nei miei ceppi , ma nulla dal logger formattato che ho definito.
ho anche PYTHONUNBUFFERED=true
e DEBUG=1
set per il mio ambiente di staging, ma non vedo nessuno dei ceppi che vedo quando si utilizza la mia versione locale con foreman start web
.
Che cosa sta causando questo e come vedo i miei registri dal vivo in Heroku?
cosa è Procfile? Con Gunicorn puoi specificare il livello di registro e il file di registro. – pchiquet
Come gestisci la tua app su Heroku? Con uWSGI o Gunicorn o qualcos'altro? – rkrzr
mio 'Procfile' è:' web: gunicorn myapp.wsgi --log-file - ' – lollercoaster