Pourquoi utiliser $ log au lieu de console.log?

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.