Maison > interface Web > js tutoriel > le corps du texte

À propos de l'utilisation réelle de log4js dans Express

亚连
Libérer: 2018-06-06 11:27:07
original
3296 Les gens l'ont consulté

Cet article présente principalement le guide pratique d'introduction aux log4js avancés dans Express. Maintenant, je le partage avec vous et le donne comme référence.

Pour les projets en ligne, la journalisation est une partie très importante. Log4js est un composant de journalisation fréquemment utilisé et est souvent utilisé avec Express. Cet article commence par un exemple d'introduction pour expliquer l'utilisation de log4js et comment l'intégrer à Express.

Exemple de démarrage

Le journal de sortie est le suivant, y compris l'heure d'impression du journal, le niveau du journal, la classification du journal et le contenu du journal.

// started.js
var log4js = require('log4js');
var logger = log4js.getLogger();
logger.debug('hello world');

// 输出: 
// [2017-02-28 21:28:22.853] [DEBUG] [default] - hello world
Copier après la connexion

Niveau de journal

logger.setLevel('INFO'); signifie que le journal de niveau le plus bas que vous souhaitez imprimer est INFO, c'est-à-dire appeler quelque chose comme les journaux ne seront pas imprimés pour les interfaces avec des niveaux inférieurs à INFO telles que logger.debug().

var log4js = require('log4js');
var logger = log4js.getLogger();
logger.setLevel('INFO');

logger.debug('level: debug');
logger.info('level: info');
logger.error('level: error');

// 输出如下:
// [2017-02-28 21:50:45.372] [INFO] [default] - level: info
// [2017-02-28 21:50:45.376] [ERROR] [default] - level: error
Copier après la connexion

Catégorie de journaux

En plus des niveaux, les journaux peuvent également être classés, log4js.getLogger(category), comme indiqué ci-dessous

var log4js = require('log4js');
var alogger = log4js.getLogger('category-a');
var blogger = log4js.getLogger('category-b');

alogger.info('hello');
blogger.info('hello');

// 输出如下:
// [2017-02-28 22:36:57.570] [INFO] category-a - hello
// [2017-02-28 22:36:57.574] [INFO] category-b - hello
Copier après la connexion

appenders

appenders spécifie l'emplacement de la sortie du journal Vous pouvez en configurer plusieurs en même temps et utiliser la catégorie pour les distinguer. Par exemple, log4js.getLogger('info') applique la configuration dont le type est dateFile.

On peut remarquer que la configuration avec le type console ne déclare pas de catégorie, par conséquent, tous les journaux seront imprimés sur la console.

var log4js = require('log4js');

log4js.configure({
  appenders: [
    { type: 'console'},
    { type: 'dateFile', filename: './logs/info.log', category: 'info' }
  ]
});

var logger = log4js.getLogger('info');
logger.setLevel('INFO');

logger.trace('trace');
logger.debug('debug');
logger.info('info');

// 输出如下:
// [2017-02-28 22:51:30.723] [INFO] info - info
Copier après la connexion

application express

Un exemple relativement simple est le suivant, tous les journaux sont imprimés sur la console.

var express = require('express');
var log4js = require('log4js');
var app = express();

log4js.configure({
  appenders: [
    { type: 'console', category: 'app' }
  ]
});

var logger = log4js.getLogger('app');

logger.setLevel('INFO'); // 级别 > INFO 的日志才会被打印

app.use( log4js.connectLogger(logger) );

app.use(function(req, res, next){
  res.send('ok');
});

app.listen(3000);
Copier après la connexion

Accédez http://127.0.0.1:3000, le journal d'impression est le suivant

[2017-03-01 00:28:29.301] [INFO] app - : :ffff : 127.0.0.1 - - "GET / HTTP/1.1" 304 - "" "Mozilla/5.0 (Macintosh ; Intel Mac OS

Lors de l'utilisation de log4js.connectLogger(logger), vous pouvez déclarer le niveau de journalisation.

// 级别 > INFO 的日志才会被打印
logger.setLevel('INFO'); 

// 日志的级别是 WARN 
app.use( log4js.connectLogger(logger, {level: 'WARN'}) );
Copier après la connexion
Notez que si le niveau de log déclaré est inférieur au niveau défini par logger.setLevel(level), le log ne sera pas imprimé, comme dans l'exemple suivant.

logger.setLevel('INFO'); 

app.use( log4js.connectLogger(logger, {level: 'DEBUG'}) );
Copier après la connexion
J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles associés :

Comment résoudre le problème selon lequel Vue ne peut pas détecter les changements dans les tableaux ou les objets ?

Quelles sont les méthodes pour ajouter de nouvelles propriétés d'objets à la séquence de détection en vue ?

Comment générer des nombres aléatoires en JS (tutoriel détaillé)

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal