J'adore vraiment cela, voici votre exemple de travail! Sérieusement, c'est génial!
Commencez par mettre ceci dans votre settings.py
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'standard': {
'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
'datefmt' : "%d/%b/%Y %H:%M:%S"
},
},
'handlers': {
'null': {
'level':'DEBUG',
'class':'django.utils.log.NullHandler',
},
'logfile': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename': SITE_ROOT + "/logfile",
'maxBytes': 50000,
'backupCount': 2,
'formatter': 'standard',
},
'console':{
'level':'INFO',
'class':'logging.StreamHandler',
'formatter': 'standard'
},
},
'loggers': {
'django': {
'handlers':['console'],
'propagate': True,
'level':'WARN',
},
'django.db.backends': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': False,
},
'MYAPP': {
'handlers': ['console', 'logfile'],
'level': 'DEBUG',
},
}
}
Maintenant qu'est-ce que tout cela signifie?
- Formateurs J'aime qu'il ait le même style que ./manage.py runserver
- Gestionnaires - Je veux deux journaux - un fichier texte de débogage et une console d'informations. Cela me permet de vraiment creuser (si nécessaire) et de regarder un fichier texte pour voir ce qui se passe sous le capot.
- Enregistreurs - Voici où nous définissons ce que nous voulons enregistrer. En général, django obtient WARN et au-dessus - l'exception (donc propager) est les backends où j'aime voir les appels SQL car ils peuvent devenir fous .. Le dernier est mon application où j'ai deux gestionnaires et y pousse tout.
Maintenant, comment puis-je activer MYAPP pour l'utiliser ...
Selon la documentation, placez-le en haut de vos fichiers (views.py).
import logging
log = logging.getLogger(__name__)
Ensuite, pour sortir quelque chose, faites ceci.
log.debug("Hey there it works!!")
log.info("Hey there it works!!")
log.warn("Hey there it works!!")
log.error("Hey there it works!!")
Les niveaux de journalisation sont expliqués ici et pour python pur ici .