Stworzyłem aplikację na Heroku i popycham do niej aplikację Django.Logowanie do Django na Heroku nie pojawia się
Monitoruję dzienniki za pomocą heroku logs --tail
, aby wyświetlić je w czasie rzeczywistym.
Następnie w moim settings.py
, mam następujące:
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',
}
}
}
Wtedy, gdy chcę coś zalogować, używam następujące:
import logging
import sys
logger = logging.getLogger('MYAPP')
logger.info('My message here...')
sys.stdout.flush()
ale nie jest to odzwierciedlone w moje logi.
My Procfile
:
web: gunicorn myapp.wsgi --log-file=-
EDIT: Co ciekawe, rzeczywiście mogę zmienić "MojaApl" na "Django", kiedy definiują moją rejestrowania config, a także logging.getLogger('django')
i że pozwala mi zobaczyć coś używając print
w moich dziennikach , ale nic z sformatowanego rejestratora, który zdefiniowałem.
Mam nawet PYTHONUNBUFFERED=true
i DEBUG=1
zestaw dla mojego środowiska pomostowego, ale nie widzę żadnej z bali, które widzę, kiedy przy moim lokalną wersję z foreman start web
.
Co jest przyczyną tego i jak mogę zobaczyć moje dzienniki na żywo w Heroku?
co to jest Procfile? Za pomocą Gunicorn można określić poziom dziennika i plik dziennika. – pchiquet
Jak uruchomić aplikację na Heroku? Z uWSGI lub Gunicorn czy czymś innym? – rkrzr
my 'Procfile' is:' web: gunicorn myapp.wsgi --log-file - ' – lollercoaster