Je comprends que c’est une bonne pratique en angular d’utiliser $log
au lieu de console.log
. Cependant, je ne trouve pas de bonne documentation expliquant les raisons. Pourquoi un développeur devrait-il utiliser $log
?
$log
vérifie d’abord si le navigateur prend en charge console.log
(IE 8, par exemple, ne le fait pas). Cela évite que des erreurs ne s’affichent sur IE 8. Remarque: cela ne signifie pas qu’il va tout enregistrer sur IE 8, cela signifie simplement qu’il ne renverra pas l’erreur.
À côté de cela, il vous permet également de décorer et de simuler $log
à des fins d’extension et de test, si vous le souhaitez. Vous pouvez par exemple le décorer pour vous connecter à un tableau pour le support IE 8.
Une fonctionnalité bonus: si vous lui transmettez une instance JavaScript Error
, elle tentera de la formater correctement. Cela peut être trouvé en lisant le code source .
EDIT: “Ce n’est pas que IE 8 ne supporte pas console.log. Il ne crée tout simplement pas l’object console tant que les outils de développement ne sont pas ouverts.” Voir les commentaires ci-dessous pour plus de détails.
Juste pour compléter la réponse de Steve (ce qui est correct), $log
également l’avantage d’être désactivé . En utilisant ce code, vous pouvez désactiver la journalisation à partir de $log
:
app.config(function($logProvider) { $logProvider.debugEnabled(true); });
C’est très pratique si vous souhaitez désactiver tous les journaux à la fois, plutôt que de les supprimer manuellement ligne par ligne.