La journalisation crée essentiellement une base de données en texte brut consultable des sorties d'impression avec d'autres méta-données (horodatage, niveau de journalisation, numéro de ligne, processus, etc.)
C'est de l'or pur, je peux lancer egrep sur le fichier de log. après le python script a été exécuté. Je peux régler ma recherche de motif egrep pour choisir exactement ce qui m'intéresse et ignorer le reste. Cette réduction de la charge cognitive et la liberté de choisir mon modèle egrep plus tard par essai et erreur est le principal avantage pour moi.
tail -f mylogfile.log | egrep "key_word1|key_word2"
Ajoutez à cela d'autres fonctionnalités que l'impression ne peut pas faire (envoi à une socket, définition de niveaux de débogage, logrotate, ajout de métadonnées, etc.
J'ai tendance à utiliser les instructions d'impression parce que c'est facile et paresseux, l'ajout de la journalisation nécessite un peu de code de base, mais nous avons des yasnippets (emacs) et des ultisnips (vim) et d'autres outils de modélisation, alors pourquoi abandonner la journalisation pour de simples instructions d'impression ?
17 votes
Pour les grands projets, la journalisation est toujours une "meilleure pratique" car vous pouvez facilement l'activer ou la désactiver, et obtenir plus ou moins d'informations. L'impression n'offre aucun de ces avantages.
1 votes
Voir i.e. blog.tplus1.com/index.php/2007/09/28/
3 votes
Je ne pense pas qu'il y ait jamais un meilleur cas d'utilisation pour
print
.8 votes
El documentation sur la journalisation en python dit que le meilleur cas d'utilisation pour
print
est d'afficher des messages d'aide pour l'utilisateur dans une application de ligne de commande.1 votes
En lisant toutes ces réponses, j'ai envie de poser la question inverse : y a-t-il jamais une raison de pas utiliser l'enregistrement ?