Saya tidak melihat entri log (pada tingkat INFO
) dibuat oleh Django di log Heroku saya.
Ini adalah konfigurasi saya:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
'not_development_filter': {
'()': NotDevelopmentFilter,
},
},
'handlers': {
'console':{
'level': 'INFO',
'class': 'logging.StreamHandler',
},
'null': {
'class': 'django.utils.log.NullHandler',
},
'mail_admins': {
'level': 'ERROR',
'filters': ['not_development_filter'],
'class': 'django.utils.log.AdminEmailHandler',
'include_html': True,
}
},
'loggers': {
'': {
'handlers': ['mail_admins', 'console'],
'level': 'INFO',
},
'django': {
'handlers': ['console'],
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': False,
},
'py.warnings': {
'handlers': ['console'],
},
}
}
Saya ingin melihat entri log di antarmuka Heroku. Tahu kenapa aku tidak melihat mereka di sana?
print
sesuatustdout
?Jawaban:
Di aplikasi memulai python , untuk log yang tidak ditandai
django
,ERROR
log level muncul diheroku
log, tetapiINFO
log tidak.Untuk membuatnya berfungsi untuk log yang tidak ditandai
django
, diperlukan konfigurasi seperti berikut (mirip dengan milik Anda):Jadi, jika Anda menyesuaikan konfigurasi Anda menjadi seperti python-memulai, termasuk Procfile, semoga bekerja.
Berikut adalah log yang tidak ditandai django, yang saya tambahkan ke
views/hello.py
:Ketika saya pertama kali mencobanya, hanya log kesalahan yang muncul. Ketika saya menambahkan konfigurasi logging di potongan kode di atas yang sebelumnya, info dan log kesalahan muncul. Ini semua dengan
DEBUG = False
(diubah dari kode di repo, yang memilikiDEBUG = True
).Mungkin lebih baik daripada memiliki kunci string kosong, jadi semuanya dicatat, untuk memiliki
loggers
entri yang lebih spesifik daripada hanya string kosong (''
).Akhirnya, dalam file log Anda, ada kasus di mana log INFO tidak akan muncul di konsol, atau Heroku log: Jika itu adalah log INFO ke
django.request
, dengan konfigurasi Anda hanya akan masuk'mail_admins'
karenapropagate
memangFalse
. Saya pikir dalam hal ini, akan lebih masuk akal untukpropagate
diaturTrue
.sumber