J'ai vraiment aime tellement cette ici est votre exemple! Sérieusement c'est génial!
Commencez par mettre 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 ce que signifie tout cela?
- Formaters je l'aime à en sortir le même style que ./manage.py runserver
- Les gestionnaires d' - je veux deux journaux - un texte de débogage du fichier, et une info de la console. Cela me permet de vraiment creuser (si nécessaire) et de regarder un fichier texte afin de voir ce qui se passe sous le capot.
- Des bûcherons - c'est Là que nous réalisons ce que nous voulons journal. En général django obtient AVERTIR et au - dessus de l'exception (d'où la propagation) est le backends où j'aime à voir les appels SQL, car ils peuvent devenir fou.. Dernier est mon application j'ai deux maîtres-chiens et pousser tout à elle.
Maintenant, comment puis-je activer MYAPP à l'utiliser...
Par la documentation de mettre cela au-dessus de vos fichiers (views.py)..
import logging
log = logging.getLogger(__name__)
Ensuite, pour obtenir quelque chose hors de ce faire.
log.debug("Hey there it works!!")
log.info("Hey there it works!!")
log.warn("Hey there it works!!")
log.error("Hey there it works!!")
Journal niveaux sont expliquées ici et pour un pur python ici.