Comment loguer efficacement en javascript
Vendredi 24 Mars 2023 08:30

Comment loguer efficacement en javascript

Il est toujours utile de loguer, du moins lorsque l’on développe. Mais il faut avouer que bien souvent nos logs ne ressemblent à rien surtout lorsque l’on veut vérifier des données plus complexes qu’un simple string ou qu’un entier. 

Je vais donc vous présenter quelques astuces pour vous faciliter la vie.

Différents affichages

Vous pouvez, en fonction de ce que vous voulez afficher, choisir la méthode d’affichage correspondante dans votre console.

Simple

Une simple ligne de texte considérés comme faisant partie du level “info”.

console.log('Attention ca bug !');

Log simple dans la console

Info

Je vous avoue ne pas trop cerner la différence avec les logs simples car ils font tous deux partie du level “info”.

console.info('Script correctement exécuté.');

Log infodans la console

Warning

Beaucoup plus visuel, les warnings se présenteront dans une ligne orangée bien visible et seront regroupés sous le level “warnings”.

console.warn('Ca ne plante pas mais fait gaffe !');

Log warning dans la console

Error

Encore plus visible avec sa belle couleur rouge qui fait peur, les logs d’erreurs sont évidemment regroupés sous le level “errors”.

console.error('Attention ca bug !');

Log error dans la console

Attention, ils ne sont qu’informatif et ne stopperont pas l'exécution de votre script.

Nettoyer la console

Si vous vous perdez dans votre console, il est possible de la nettoyer via la commande suivante

console.clear();

Taguer vos logs

Petite astuce assez simple mais bien souvent méconnue, le fait de taguer vos logs.
Si vous écrivez plusieurs logs de suite, vous n’aurez que la valeur d’affichée. Si vous ajoutez votre tag avant, vous aurez une lecture bien plus simple.

var maVariable = "http://kevinrolin.be";

console.log('MonTag', maVariable);

Taguer vos logs

Loguer plusieurs variables en une fois

Demi astuce: il est parfois intéressant de ressortir plusieurs logs en une fois et pour se faire, il suffit d'insérer nos valeurs dans un tableau directement lors du log.

var bulbizarre = { kanto:1, johto:226, hoenn:203, kalos:80 };
var salameche = { kanto:4, johto:229, hoenn:206, kalos:83 };
var carapuce = { kanto:7, johto:232, hoenn:209, kalos:86 };

console.log('pokedex', {bulbizarre, salameche, carapuce});

Loguer plusieurs variables en une fois

Chronométrer le temps d'exécution

Nerf de la guerre: la vitesse d’exécution. Mais pour savoir ce qui doit être amélioré, il nous faut des chiffres. Ici aussi, nous avons l’outil parfait et déjà intégré.
Une commande pour lancer le chrono, une seconde pour l’arrêter et afficher le temps.

Bonus: vous pouvez lancer plusieurs chronos en même temps, Il vous suffit d’utiliser des tags différents.

console.time('MonTimer');

var items = [];
for(var i = 0; i<100000; i++){
    items.push({index: i});
}

console.timeEnd('MonTimer');

Chronométrer le temps d'exécution

Compter les itérations simplement

Il y a de grande chance que vous comptiez vos itérations à l’ancienne avec un bon vieux “i++”. Mais dés qu’il faut compter de façon récursive, ça devient vite complexe.

Heureusement, ici aussi, un outil tout simple est disponible et s'incrémentera à chaque appel !

let pokemons = ['Bulbizarre', 'Herbizarre', 'Florizarre', 'Salameche', 'Reptincel', 'Dracaufeu' ];

pokemons.forEach(function (item, index) {
    console.count('Pokedex');
});

Compter les itérations simplement

Attention, il n’y a pas de reset automatique. Pour ce faire, utiliser la commande suivante

console.countReset('Pokedex');

Affichage d’un tableau

Faire un log d’un tableau est généralement une plaie tellement c’est illisible.
Mais encore une fois il existe la fonction permettant un affichage qui change la vie !

var bulbizarre = [
    { name: 'Fouet Lianes', type:'Plante', lvl:3 },
    { name: 'Croissance', type:'Normal', lvl:6 },
    { name: 'Vampigraine', type:'Plante', lvl:9 },
    { name: 'Tranch\'Herbe', type:'Plante', lvl:12 },
    { name: 'Poudre Dodo', type:'Plante', lvl:15 },
];

console.table(bulbizarre);

Affichage d’un tableau

Et vous pouvez même cliquer sur les en-têtes pour trier les colonnes !

Grouper les logs

Si vous souhaitez loguer par fonction ou par itération, il devient vite difficile de s’y retrouver entre le premier groupe d’informations et le suivant.
Une fonction permet de regrouper facilement tous les logs générés entre l’appel de début et celui de fin.

console.group('Ectoplasma');
console.log('type', 'Spectre');
console.log('Description', 'Les nuits de pleine lune, il imite l\'ombre des passants et se moque de leur effroi.');
console.groupEnd();

console.group('Alakazam');
console.log('type', 'Psy');
console.log('Description', 'Son super cerveau peut effectuer des opérations à la vitesse d\'un ordinateur.');
console.groupEnd();

Grouper les logs

Le mot de la fin

Tout ça ne va pas spécialement révolutionner votre façon de travailler mais il faut avouer qu’il y a quelques méthodes bien sympa qui nous faciliteront la vie!

Perso, je retiens console.table(); qui est juste magnifique !

Nous utilisons des cookies pour améliorer et personnaliser votre expérience, fournir des publicités pertinentes et analyser les performances du site.

Politique de confidentialité Accepter