Table des matières
Ce que nous voulons
为第三方模块打开 debug
查看开源 node 模块是否使用了 debug 以及是如何使用的
总结
Maison interface Web js tutoriel Évitez la pollution des journaux d'application à l'aide du module « debug » de Node.js

Évitez la pollution des journaux d'application à l'aide du module « debug » de Node.js

Sep 27, 2020 pm 01:52 PM
debug node.js 日志 模块

Cet article vous présentera comment utiliser le module « debug » de Node.js pour éviter la pollution des logs des applications. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Évitez la pollution des journaux d'application à l'aide du module « debug » de Node.js

Recommandation de didacticiel vidéo : Tutoriel nodejs

Avez-vous déjà vécu une telle expérience, veuillez l'enregistrer ? Ajoutez à un module Node personnalisé et pensez que vous bénéficierez d'informations supplémentaires, pour constater que lorsque vous ajoutez le module en tant que dépendance et exécutez npm install et npm start, vos journaux de programme ressemblent à ceci ?

Évitez la pollution des journaux dapplication à laide du module « debug » de Node.js

Comment trouver les informations dont vous avez réellement besoin ? Comme qui s'est connecté et quand, plutôt que les informations provenant des dépendances de l'application :

Évitez la pollution des journaux dapplication à laide du module « debug » de Node.js

De même, lorsque vous soupçonnez que vos performances When diminuent en raison de modifications apportées par l'équipe aux dépendances du module Node, les seuls journaux qui doivent être traités sont :

Évitez la pollution des journaux dapplication à laide du module « debug » de Node.js

En regardant la situation dans son ensemble, voici à quoi ressemble la pollution des journaux comme :

Évitez la pollution des journaux dapplication à laide du module « debug » de Node.js

Ce que nous voulons

La solution de journalisation idéale serait celle où les journaux de module n'entrent pas dans la journalisation d'un programme ou d'un service, mais dans la capacité pour l'ouvrir pour le dépannage en cas de besoin.

Pour ce faire, je vais vous montrer comment utiliser le module debug pour activer ou désactiver la journalisation dans un module Node.

Si vous n'en avez pas besoin et que le service utilisant ce module fonctionne correctement, réglez-le sur OFF.

ON est utilisé lorsque vous rencontrez un problème et avez besoin d'autant d'informations de journal que possible.

debug Présentation du module

En termes de fonctionnalités, veuillez ne pas penser aux modules de débogage comme vous y penseriez normalement dans un débogueur (comme la façon dont vous définissez les points d'arrêt dans l'EDI) , Cela devrait ressembler davantage à un module console modifié. Il s'agit d'un outil qui vous permet d'activer et de désactiver les journaux selon vos besoins. Si vous allez sur sa page GitHub (https://github.com/visionmedi...), vous verrez également ses diverses autres fonctionnalités, telles que les espaces de noms, etc. Ignorez cela pour l'instant, sachez simplement que c'est un outil qui peut optimiser votre environnement de production.

Implémentation de debug

dans votre propre module Node Regardons un exemple d'utilisation de debug dans le code. Supposons que ce qui suit soit un module :

const debug = require('debug');
const log = debug('http:server');
const http = require('http');
const name = 'Demo App for debug module';
 
log('booting %o', name);
 
http.createServer((req, res) => {
  log(req.method + ' ' + req.url);
  res.end('debug example\n');
}).listen(3200, () => {
  log('listening');
});
Copier après la connexion

La mise en œuvre de debug est facile. Tout ce que nous avons à faire est d'importer ou d'exiger le module puis de créer un enregistreur - const log = debug('http:server'); . Il vous suffit de transmettre la balise ou l'espace de noms 'http:server' d'un enregistreur spécifique à la variable d'environnement DEBUG pour activer le débogage.

Lorsque vous démarrez l'application (c'est-à-dire le programme qui a importé le module), vous la démarrerez comme ceci :

DEBUG=http:server node app-entrypoint.js
Copier après la connexion

Si nous voulons Que dois-je faire si j'utilise un enregistreur distinct pour changer certains journaux ? Par exemple, que se passe-t-il si nous voulons uniquement passer à l’erreur ? C'est aussi simple que de créer un autre enregistreur, comme ceci :

const debug = require('debug');
const log = debug('http:server');
const errorLogger = debug('http:error'); // create new logger here, passing it a new namespace
const http = require('http');
const name = 'Demo App for debug module';
 
log('booting %o', name);
 
http.createServer((req, res) => {
  log(req.method + ' ' + req.url);
  res.end('hello\n');
 
  // fake an error to demonstrate using debug for http:error namespace
  setTimeout(() => {
    errorLogger('fake error'); // then call the logger 
  }, 1000);
}).listen(3200, () => {
  log('listening');
});
Copier après la connexion

Ce qui suit n'ouvrira que les erreurs :

DEBUG=http:error node app-entrypoint.js
Copier après la connexion

而且,当你要记录所有命名空间的日志时(在这种情况下,是 http:serverhttp:error),只需传递通配符 * 即可。

DEBUG=http:* node app-entrypoint.js
Copier après la connexion

让我们看看这些日志现在是什么样的:

Évitez la pollution des journaux dapplication à laide du module « debug » de Node.js

然后,当我们加载页面时:

Évitez la pollution des journaux dapplication à laide du module « debug » de Node.js

注意,debug 会写入 stderr 而不是 stdout,所以如果你有一个根据不同的来源提取日志的日志路由,这些调试日志将最终会存储在 stderr 流中。

最后,你还可以选择:

  • 你可以记录所有用 debug 编写的模块的日志。
  • 或者,你仍然可以用 console.log()/console.error() 记录某些内容,而另一些记录 debug

如果你有必须要记录的事项,并且与使用该模块的应用程序有关,请用 console 将其记录下来。但是如果你不这样做,就会用 debug 记录所有的内容。

为第三方模块打开 debug

到目前为止,如果你(或你的团队)编写了该模块,那么我们所介绍的内容就很棒。

但是如果你用的是第三方模块,那需要打开调试时该怎么办?

也许你已经对程序的各个部分进行了故障排除,不够现在假设你正在使用的开源模块可能会让你遇到问题。

好消息是,debug 是一个使用非常广泛的模块,npm 中的许多模块可能都在用它。第三方模块的创建者知道(至少,应该知道)该模块的用户真的不希望默认情况下进行记录,因为所有其他的日志都可能会变得杂乱无章。

由于 Express 内部使用了 debug 模块,所以如果你用了 Express 并需要对其进行故障排除,则可以通过运行以下命令打开日志:

DEBUG=express:* node your-app-entrypoint.js
Copier après la connexion

查看开源 node 模块是否使用了 debug 以及是如何使用的

如果在文档中没有看到关于是否使用了 debug 的内容该怎么办? 即便如此,也有可能使用了该模块,但是你必须进行一些挖掘。

我们已经知道 Express 文档中描述了该如何使用它,但是我们假设它并没有记录在案:

首先,你可以在项目的 GitHub(或其他开放源代码网站)上搜索 package.json,然后查找其中列出的作为依赖项的模块:

Évitez la pollution des journaux dapplication à laide du module « debug » de Node.js

确认后,你还需要确认 1)实际正在使用中,以及 2)切换需要使用哪些标志。 GitHub 现在具有一项不错的功能,你可以在其中使用搜索栏搜索项目本身。如果我们在 Express 项目中搜索“debug”,则会发现以下内容

Évitez la pollution des journaux dapplication à laide du module « debug » de Node.js

我们可以看到切换标记为 “express”,因此 express:* 将为我们提供所有的日志,express:view 将为我们提供视图的日志,等等。

总结

希望你看到在 node 模块中实现 debug 并为第三方模块打开它是多么容易,以及它可以怎样帮你清理日志,同时又为你提供了一种方便的方法来将其重新打开进行故障排除。

英文原文地址:https://www.coreycleary.me/using-the-debug-module-to-avoid-polluting-your-application-logs-with-logs-from-node-modules/

作者:Corey Cleary

更多编程相关知识,可访问:编程入门!!

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le module d'extension WLAN s'est arrêté [correctif] Le module d'extension WLAN s'est arrêté [correctif] Feb 19, 2024 pm 02:18 PM

S'il y a un problème avec le module d'extension WLAN sur votre ordinateur Windows, cela peut entraîner une déconnexion d'Internet. Cette situation est souvent frustrante, mais heureusement, cet article propose quelques suggestions simples qui peuvent vous aider à résoudre ce problème et à rétablir le bon fonctionnement de votre connexion sans fil. Réparer le module d'extensibilité WLAN s'est arrêté Si le module d'extensibilité WLAN a cessé de fonctionner sur votre ordinateur Windows, suivez ces suggestions pour le réparer : Exécutez l'utilitaire de résolution des problèmes réseau et Internet pour désactiver et réactiver les connexions réseau sans fil Redémarrez le service de configuration automatique WLAN Modifier les options d'alimentation Modifier Paramètres d'alimentation avancés Réinstaller le pilote de la carte réseau Exécuter certaines commandes réseau Examinons-le maintenant en détail

Qu'est-ce que l'ID d'événement 6013 dans Win10 ? Qu'est-ce que l'ID d'événement 6013 dans Win10 ? Jan 09, 2024 am 10:09 AM

Les journaux de Win10 peuvent aider les utilisateurs à comprendre l'utilisation du système en détail. De nombreux utilisateurs doivent avoir rencontré le journal 6013 lorsqu'ils recherchent leurs propres journaux de gestion. Alors, que signifie ce code ? Qu'est-ce que le journal Win10 6013 : 1. Il s'agit d'un journal normal. Les informations contenues dans ce journal ne signifient pas que votre ordinateur a été redémarré, mais elles indiquent combien de temps le système a fonctionné depuis son dernier démarrage. Ce journal apparaîtra une fois par jour à 12 heures précises. Comment vérifier depuis combien de temps le système fonctionne ? Vous pouvez saisir les informations système dans cmd. Il y a une ligne dedans.

Le module d'extensibilité WLAN ne peut pas démarrer Le module d'extensibilité WLAN ne peut pas démarrer Feb 19, 2024 pm 05:09 PM

Cet article détaille les méthodes permettant de résoudre l'événement ID10000, qui indique que le module d'extension LAN sans fil ne peut pas démarrer. Cette erreur peut apparaître dans le journal des événements du PC Windows 11/10. Le module d'extensibilité WLAN est un composant de Windows qui permet aux fournisseurs de matériel indépendants (IHV) et aux fournisseurs de logiciels indépendants (ISV) de fournir aux utilisateurs des fonctionnalités de réseau sans fil personnalisées. Il étend les fonctionnalités des composants réseau Windows natifs en ajoutant la fonctionnalité par défaut de Windows. Le module d'extensibilité WLAN est démarré dans le cadre de l'initialisation lorsque le système d'exploitation charge les composants réseau. Si le module d'extension LAN sans fil rencontre un problème et ne peut pas démarrer, vous pouvez voir un message d'erreur dans le journal de l'Observateur d'événements.

Dépannage des problèmes de journal des erreurs de l'événement 7034 dans Win10 Dépannage des problèmes de journal des erreurs de l'événement 7034 dans Win10 Jan 11, 2024 pm 02:06 PM

Les journaux de Win10 peuvent aider les utilisateurs à comprendre l'utilisation du système en détail. De nombreux utilisateurs doivent avoir vu de nombreux journaux d'erreurs lorsqu'ils recherchent leurs propres journaux de gestion. Alors, comment les résoudre ? Comment résoudre l'événement 7034 du journal Win10 : 1. Cliquez sur "Démarrer" pour ouvrir le "Panneau de configuration" 2. Recherchez "Outils d'administration" 3. Cliquez sur "Services" 4. Recherchez HDZBCommServiceForV2.0, cliquez avec le bouton droit sur "Arrêter le service" et modifiez-le. vers "Démarrage manuel "

Comment afficher l'historique de votre journal de médicaments dans l'application Santé sur iPhone Comment afficher l'historique de votre journal de médicaments dans l'application Santé sur iPhone Nov 29, 2023 pm 08:46 PM

iPhone vous permet d’ajouter des médicaments dans l’application Santé pour suivre et gérer les médicaments, vitamines et suppléments que vous prenez quotidiennement. Vous pouvez ensuite enregistrer les médicaments que vous avez pris ou ignorés lorsque vous recevez une notification sur votre appareil. Après avoir enregistré vos médicaments, vous pouvez voir à quelle fréquence vous les avez pris ou sautés pour vous aider à suivre votre état de santé. Dans cet article, nous vous guiderons pour afficher l'historique des journaux de médicaments sélectionnés dans l'application Santé sur iPhone. Un petit guide sur la façon d'afficher l'historique de votre journal de médicaments dans l'application Santé : Accédez à l'application Santé > Parcourir > Médicaments > Médicaments > Sélectionner un médicament > Options

Explication détaillée de la commande d'affichage des journaux dans le système Linux ! Explication détaillée de la commande d'affichage des journaux dans le système Linux ! Mar 06, 2024 pm 03:55 PM

Sur les systèmes Linux, vous pouvez utiliser la commande suivante pour afficher le contenu du fichier journal : Commande tail : La commande tail est utilisée pour afficher le contenu à la fin du fichier journal. Il s'agit d'une commande courante pour afficher les dernières informations du journal. tail [option] [nom du fichier] Les options couramment utilisées incluent : -n : Spécifiez le nombre de lignes à afficher, la valeur par défaut est de 10 lignes. -f : Surveillez le contenu du fichier en temps réel et affichez automatiquement le nouveau contenu lorsque le fichier est mis à jour. Exemple : tail-n20logfile.txt#Afficher les 20 dernières lignes du fichier logfile.txt tail-flogfile.txt#Surveiller le contenu mis à jour du fichier logfile.txt en temps réel Commande head : La commande head permet d'afficher le début du fichier journal

Explication détaillée du fonctionnement d'Ansible Explication détaillée du fonctionnement d'Ansible Feb 18, 2024 pm 05:40 PM

Le principe de fonctionnement d'Ansible peut être compris à partir de la figure ci-dessus : l'extrémité de gestion prend en charge trois méthodes locales, ssh et zeromq pour se connecter à l'extrémité gérée. La valeur par défaut est d'utiliser une connexion basée sur ssh. Cette partie correspond au module de connexion. dans le diagramme d'architecture ci-dessus ; il peut être connecté par type d'application. La classification HostInventory (liste d'hôtes) est effectuée d'autres manières. Le nœud de gestion implémente les opérations correspondantes via divers modules. Un seul module et l'exécution par lots d'une seule commande peuvent être appelés. -hoc ; le nœud de gestion peut implémenter un ensemble de tâches multiples via des playbooks. Implémenter un type de fonctions, telles que l'installation et le déploiement de services Web, la sauvegarde par lots de serveurs de base de données, etc. Nous pouvons simplement comprendre les playbooks au fur et à mesure que le système passe

Cet article résume les méthodes classiques et la comparaison des effets de l'amélioration et de la personnalisation des fonctionnalités dans l'estimation du CTR. Cet article résume les méthodes classiques et la comparaison des effets de l'amélioration et de la personnalisation des fonctionnalités dans l'estimation du CTR. Dec 15, 2023 am 09:23 AM

Dans l'estimation du CTR, la méthode traditionnelle utilise l'intégration de fonctionnalités + MLP, dans lesquels les fonctionnalités sont très critiques. Cependant, pour les mêmes caractéristiques, la représentation est la même dans différents échantillons. Cette façon de saisir le modèle en aval limitera la capacité d'expression du modèle. Afin de résoudre ce problème, une série de travaux connexes ont été proposés dans le domaine de l'estimation du CTR, appelés module d'amélioration des fonctionnalités. Le module d'amélioration des fonctionnalités corrige les résultats de sortie de la couche d'intégration en fonction de différents échantillons pour s'adapter à la représentation des caractéristiques de différents échantillons et améliorer la capacité d'expression du modèle. Récemment, l'Université de Fudan et Microsoft Research Asia ont publié conjointement une étude sur les travaux d'amélioration des fonctionnalités, comparant les méthodes de mise en œuvre et les effets de différents modules d'amélioration des fonctionnalités. Maintenant, introduisons un

See all articles