Görüntü işlevinde farklı noktalarda django uygulamasında hata ayıklama iletileri çıktı almak istiyorum. django-debug-toolbar dokümanı, python günlüğünde oluşturmayı kullandığını söylüyor ancak daha fazla bilgi bulamıyorum. Gerçekten bir dosyaya değil, araç çubuğundaki bilgi bölmesine giriş yapmak istemiyorum. Bu nasıl çalışıyor?Django Debug Toolbar'da Logging'i nasıl kullanırım?
cevap
Yalnızca logging module yöntemlerini kullanıyorsunuz ve DjDT bunları kaydetme Günlüğü Panelinde durduracak ve görüntüleyecektir.
import logging
logging.debug('Debug Message')
if some_error:
logging.error('Error Message')
@ jonwd7 belirtildiği gibi, kök loggera düz açılıyor, genellikle tavsiye edilmez. Genellikle bu desen takip ediyorum: Bu veriyor
import logging
logger = logging.getLogger(__name__)
del logging # To prevent accidentally using it
...
logger.debug("Some message")
Eğer çok ince günlüğü mesajlar ve görünmüyor hangi kontrolünü taneli olması. Ne yazık ki, bu şekilde kullanıldığında, belirli bir günlüğe kaydetme yapılandırmasını belirtmediğiniz sürece django hata ayıklama araç çubuğunu herhangi bir günlük iletisini yakalama işlemini durdurur. İşte ile gelebilir en basit biri: Eğer işleyici kök günlükçüsüne bağlı araç çubuğu devre dışı bırakılması; yani "artan" ve "disable_existing_loggers" Ayarı
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'incremental': True,
'root': {
'level': 'DEBUG',
},
}
her ikisi de önemlidir. Tek yapmak istediğin, kök kaydedicinin "Google" olarak ayarlandı. Ayrıca, belirli kaydediciler için seviyeleri ayarlamak için "kaydediciler" girişini de kullanabilirsiniz. "İşleyicileri" bölümünü atlayın ve "yayma" seçeneğini ayarlayın: Doğru, böylece DjDT işleyicisi tarafından yakalanır.
Mevcut bir LOGGING yapılandırma dict'iniz varsa ve 'incremental' (geçiş) 'e geçerek dağınıklık yapmak istemiyorsanız, DjDT günlüğünü bir işleyici olarak yeniden eklemeniz, sonra da bunu eklemeniz gerekir. kök günlüğü işleyicileri listesi.
from debug_toolbar.panels.logging import collector # needed for handler constructor below
LOGGING = {
# existing options, formatters, loggers, etc
handlers = {
# existing handlers
'djdt_log': {
'level': 'DEBUG',
'class': 'debug_toolbar.panels.logging.ThreadTrackingHandler',
'collector': collector,
},
},
'root': {
'level': 'DEBUG',
'handlers': ['djdt_log'],
},
}
Bunu yapmanın daha temiz bir yolu varsa, onu görmek isterim.
- 1. Django: UUIDField'ı django-extensions'tan nasıl kullanırım
- 2. django-kompresör: DEBUG modunda lessc kullanma
- 3. Django & Redis: Bağlantı havuzlamasını nasıl düzgün kullanırım?
- 4. Mono Debug - Nasıl kapatılır?
- 5. Debug Modu?
- 6. edilemiyor Bu seçenekleri kullanarak, debug Debug uzaktan
- 7. qMake: "CONFIG (debug, debug | release)" sözdizimini
- 8. django-debug-aracı yönetici sitesinde bir yönlendirme döngüsüne yol açıyor?
- 9. gdb ile Debug qemu
- 10. Mac üzerinde Debug PHP
- 11. Mono.WebBrowser'ı nasıl kullanırım?
- 12. Python-WikEdDiff'i nasıl kullanırım?
- 13. Zip'i Clojure'da nasıl kullanırım?
- 14. MySQL'de nasıl oy kullanırım?
- 15. Android İvmeölçer'i nasıl kullanırım?
- 16. Drools Planner'ı nasıl kullanırım?
- 17. KeyEventDispatcher'ı nasıl kullanırım?
- 18. Neo4j - siparişi nasıl kullanırım?
- 19. Apple Keychain'i nasıl kullanırım?
- 20. gluLookAt'ı nasıl düzgün kullanırım?
- 21. Abone seçeneğini nasıl kullanırım?
- 22. SyndicationFeed'i nasıl kullanırım?
- 23. AVAssetWriter'i nasıl kullanırım?
- 24. Numeric_cast politikasını nasıl kullanırım?
- 25. IRequiresSessionState - nasıl kullanırım?
- 26. chrome.tabs.onUpdated.addListener'ı nasıl kullanırım?
- 27. CasqueryJS'de jQuery'yi nasıl kullanırım?
- 28. Yemlemede parçacığı nasıl kullanırım?
- 29. StofDoctrineExtensionsBundle softdelete - Nasıl kullanırım?
- 30. Eclipse kullanarak Debug LLVM
Kök kaydedici ile detaylara girdiğiniz için teşekkür ederiz. Diğer cevapların eksik olduğu bilgisidir. – jnns
ayar kısmı bana yardımcı oldu, teşekkürler! 2016'da hala iyi tavsiyeler – Jeff