JavaScript – Connectez-vous à la console (console.log vs frameworks)

Les développeurs doivent savoir ce que fait leur code pendant qu’il exécute JavaScript, que ce soit dans le navigateur ou dans l’environnement NodeJS. Ces informations peuvent aider à vérifier le code, à trouver des bogues ou à mesurer les performances. L’impression de données via la console est le moyen le plus simple de le faire.


Dans cet article, nous aborderons la journalisation sur la console du navigateur à l’aide de la méthode console.log () et la journalisation à l’aide de frameworks et de bibliothèques populaires.

De base: connexion à la console du navigateur à l’aide de console.log ()

Côté client ou dans le navigateur, vous pouvez utiliser console.log () pour enregistrer toutes les données dans JavaScript.

Utilisation de console.log () en Javascript ou dans le navigateur

Appuyez sur la touche F12 pour ouvrir la console du navigateur. Assurez-vous que l’onglet «Console» est sélectionné, puis vous pouvez copier et coller ces exemples directement dans la ligne de commande de la console:

1
2
3
4
5
6

console.log (‘foo’); // chaîne

console.log (‘foo value:’, 100); // chaîne avec une valeur

console.log (‘foo’, ‘bar’, ‘baz’); // plusieurs chaînes

console.log ({nom: "Simon", id: 5}); // objet

console.log ([1, 2, 3], [‘a’, ‘b’, ‘c’]); // plusieurs tableaux

console.log (new Date ()); // Date

Un exemple utilisant la substitution de chaîne

Vous pouvez également utiliser la substitution de chaînes, ce qui est particulièrement utile avec les boucles de code.

1
2
3
4
5
6
7
8

var contacts = [

{nom: ‘Simon’, id: 5, âge: 25},

{nom: “Ben”, id: 7, âge: 54},

{nom: ‘Lisa’, id: 9, âge: 32}

];

pour (var i = 0; i < contacts.length; i ++) {

   console.log (‘Nom:% s, Âge:% d.’, contacts [i] .nom, contacts [i] .age);

}

Qui produira:

1
2
3

Nom: Simon, âge: 25.

Nom: Ben, âge: 54.

Nom: Lisa, 32 ans.

Intermédiaire: autres fonctions de consignation de la console utiles

Il existe quelques autres méthodes similaires à console.log (), mais toutes leurs sorties visuelles diffèrent légèrement:

console.info () et console.warn ()

1
2

console.info ("Voici un texte informatif pour vous faire savoir ce qui se passe.");

console.warn ("Vous n’avez pas fait quelque chose de terrible, mais peut-être voulez-vous revérifier?");

Astuce NodeJS: Lorsque vous envisagez ces méthodes, gardez à l’esprit que dans l’environnement NodeJS, console.error et console.warn sortiront vers stderr au lieu de stdout. Il existe également de nombreuses bibliothèques de journalisation colorées, qui peuvent aider à améliorer la lisibilité de la sortie de journalisation dans NodeJS.

console.table ()

Si vous devez sortir un grand nombre de données tabulaires, la méthode de consignation console.table () est utile; cependant, il n’est actuellement pas pris en charge par certains navigateurs, notamment Internet Explorer, Opera et Safari.

1
2
3
4
5

console.table ([

{nom: ‘Simon’, id: 5, âge: 25},

{nom: “Ben”, id: 7, âge: 54},

{nom: ‘Lisa’, id: 9, âge: 32}

]);

La sortie ressemble à ceci:

onglet de la console du navigateur

Autres méthodes

Voici quelques autres commandes de journalisation, plus ésotériques, sur lesquelles vous pouvez lire:

  • console.assert ()
  • console.trace ()
  • console.time ()

Intermédiaire (NodeJS): journalisation à l’aide de console.error ()

Lorsque vous souhaitez consigner des erreurs à l’aide de la console NodeJS, vous pouvez utiliser console.error (), au lieu de console.log (). De cette façon, les erreurs peuvent être redirigées dans le processus shell vers stdout, stderr et / ou un fichier journal. La journalisation des non-erreurs peut être effectuée en dirigeant console.log () vers stdout.

Entrée / sortie shell → redirections 1> à stdout et 2> à stderr.

Un exemple de redirection de sortie dans NodeJS

1
2

console.log (‘C’est juste un truc de débogage bruyant’);

console.error (‘Cela signifie que quelqu’un a encore cassé quelque chose’);

Nous pouvons rediriger la sortie (stdout) et les erreurs (stderr) vers différents fichiers:

1 node test.js > out.log 2> err.log

Nous pouvons également rediriger la sortie et les erreurs vers le même fichier:

1 node test.js > everything.log 2>&1

Avancé: utilisation des cadres & Bibliothèques pour se connecter à la console

Pour une solution de journalisation plus avancée dans le navigateur, log4javascript peut être utile. Pour des fins de journalisation NodeJS plus sérieuses, il peut être utile d’utiliser une bibliothèque de journalisation bien testée, telle que

Winston, Node-Bunyan ou Tracer.

Connexion à la console du navigateur à l’aide de JS Framework: log4javascript

Ceci est un cadre de journalisation JS avec une API basée sur la bibliothèque de journalisation Java populaire log4j.

Caractéristiques principales de log4javascript:

  • Par défaut, il se connecte à une fenêtre de console contextuelle avec de puissantes fonctions de recherche (y compris les expressions régulières) et de filtrage. La fenêtre peut également être utilisée comme un iframe en ligne sur la page.
  • Les messages de log peuvent être envoyés au serveur via HTTP (ou AJAX, si vous le souhaitez).
  • Il est hautement configurable en utilisant des méthodes familières de log4j, y compris PatternLayout, qui donne au développeur un contrôle complet sur le format des messages de journal.

Journalisation JS - log4javascript
Voici une version allégée de log4javascript (prend en charge un sous-ensemble de base des fonctionnalités d’origine).

Connexion à la console NodeJS à l’aide d’une bibliothèque: Winston, Node-Bunyan, & Traceur

Selon le contexte du processus, la nature asynchrone de la journalisation peut entraîner la perte de messages de journal si elle n’est pas gérée correctement. C’est là que les bibliothèques de journalisation pour NodeJS deviennent très utiles.

1. Bibliothèque Winston

La bibliothèque de journalisation NodeJS la plus populaire semble être Winston, qui est conçue pour être simple et universelle. Winston prend en charge les transports asynchrones (ou les périphériques de stockage pour vos journaux), de sorte que chaque instance peut avoir plusieurs transports configurés à différents niveaux. Par exemple, vous pouvez avoir des journaux d’erreurs stockés de manière cohérente dans un emplacement distant (comme une base de données), mais tous les journaux sortent vers la console ou un fichier local.

2. Bibliothèque Node-Bunyan

La bibliothèque Node-Bunyan fournit un module de journalisation JSON simple et rapide pour NodeJS. L’idée de cette bibliothèque est que les journaux du serveur doivent être structurés et que JSON est un bon format pour cela. Un enregistrement de journal est une ligne de sortie JSON.stringify (). Il existe également un outil de ligne de commande spécial pour l’impression et le filtrage des journaux Bunyan.

3. Bibliothèque Tracer

Tracer est une bibliothèque de journalisation NodeJS personnalisable qui peut imprimer des messages de journal avec un horodatage, un nom de fichier, un nom de méthode, un numéro de ligne, un chemin ou une pile d’appels. Tracer prend également en charge les niveaux de journalisation définis par l’utilisateur, les modèles de sortie personnalisés, d’autres transports et les sorties colorées.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me