mercredi 18 août 2010

Gestion des logs en javascript

Pendant la phase de développement de vos scripts, il est tout à fait normal d’utiliser les logs, c'est même recommandé.
console.log("valeur de i = "+i);
En revanche, une fois le développement terminé et que vous êtes sur le point de livrer votre travail, vous ne voulez plus de ces logs. Certains navigateurs qui n'ont pas de console vont planter dès qu'ils rencontreront une instruction de type console.log.

La solution :

Voici une technique que j’utilise désormais dans tout mes scripts pour pallier à ce problème.
 if(!window.console){
  window.console = {};
 }
 if(!window.console.log){
  window.console.log = function(){};
 }
 if(!isLogEnabled()){
  console.log = function(){};
 } 

Il suffit de retourner true dans votre fonction isLogEnabled quand vous êtes en mode développement, et false en production. (Rajouter cette manipulation dans la checklist des points à vérifier avant chaque packaging :) )

Maintenant vous pouvez vous éclater avec les console.log et les oublier sans que ça fasse de mal.

Bonus : Vous pouvez reprendre le même mécanisme et affiner vos niveaux de logs (debug, info, warn et error).

Aucun commentaire:

Enregistrer un commentaire