Maison > interface Web > js tutoriel > Éviter console.log en production : meilleures pratiques pour une journalisation robuste

Éviter console.log en production : meilleures pratiques pour une journalisation robuste

Patricia Arquette
Libérer: 2024-12-09 09:15:08
original
617 Les gens l'ont consulté

Avoiding console.log in Production: Best Practices for Robust Logging

Présentation

La journalisation est cruciale pour le débogage et la surveillance des applications, mais une journalisation inappropriée peut entraîner des problèmes de performances, des vulnérabilités de sécurité et une sortie encombrée. Dans cet article, nous explorerons pourquoi console.log doit être évité en production et fournirons les meilleures pratiques à l'aide d'exemples.

Pourquoi faut-il éviter console.log en production ?

  • Frais généraux de performances -> Cela a pris environ 46 secondes dans mon système.
console.time("with -> console.log");
for (let i = 0; i < 1000000; i++) {
    console.log(`Iteration number: ${i}`);
}
console.timeEnd("with -> console.log");
Copier après la connexion

Cette boucle enregistre un message un million de fois, entraînant une dégradation des performances.

-> Cela a pris environ 1 ms dans mon système.

console.time("without -> console.log");
for (let i = 0; i < 1000000; i++) {
}
console.timeEnd("without -> console.log");
Copier après la connexion
  • Risques de sécurité La journalisation d’informations sensibles peut exposer les données à des tiers involontaires. Ce code enregistre des informations d'identification sensibles, ce qui présente des risques de sécurité.
const userCredentials = { username: 'john_doe', password: 's3cr3t' };
console.log(userCredentials);
Copier après la connexion
  • Journaux encombrés Une journalisation fréquente peut surcharger la console, rendant difficile la recherche d'informations pertinentes.
function processOrder(order) {
  console.log('Processing order:', order);
  // Order processing logic here
  console.log('Order processed successfully');
}
Copier après la connexion

Bonnes pratiques pour la connexion en production

  • Utilisez une bibliothèque de journalisation appropriée Les bibliothèques comme morgan, winston, pino ou log4js fournissent une journalisation structurée avec des niveaux de journalisation.
const pino = require('pino');
const logger = pino();

function processOrder(order) {
  logger.info({ order }, 'Processing order');
  // Order processing logic here
  logger.info('Order processed successfully');
}
Copier après la connexion
  • Enregistrez les informations sensibles en toute sécurité Évitez de consigner directement les données sensibles.
const userCredentials = { username: 'john_doe', password: 's3cr3t' };
logger.info({ username: userCredentials.username }, 'User logged in');
Copier après la connexion
  • Implémenter la journalisation conditionnelle
const isProduction = process.env.NODE_ENV === 'production';

function log(message) {
  if (!isProduction) {
    console.log(message);
  }
}

log('This message will only appear in development');
Copier après la connexion
  • Connectez-vous à un serveur ou à un service externe
const axios = require('axios');

function logToServer(message) {
  axios.post('/api/log', { message })
    .catch(error => console.error('Failed to send log:', error));
}

logToServer('This is an important event');
Copier après la connexion

Conclusion

L'utilisation de console.log en production peut entraîner des problèmes de performances, des risques de sécurité et des journaux encombrés. En adoptant des pratiques de journalisation appropriées avec des bibliothèques dédiées et des méthodologies sécurisées, vous pouvez garantir que votre application est robuste, maintenable et sécurisée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal