Heim  >  Artikel  >  Web-Frontend  >  Informationen zur tatsächlichen Verwendung von log4js in Express

Informationen zur tatsächlichen Verwendung von log4js in Express

亚连
亚连Original
2018-06-06 11:27:073232Durchsuche

In diesem Artikel wird hauptsächlich die praktische Einführung in erweiterte Log4js in Express vorgestellt. Jetzt teile ich sie mit Ihnen und gebe sie als Referenz.

Bei Online-Projekten ist die Protokollierung ein sehr wichtiger Teil. Log4js ist eine häufig verwendete Protokollierungskomponente und wird häufig zusammen mit Express verwendet. Dieser Artikel beginnt mit einem einführenden Beispiel, um die Verwendung von log4js und die Integration in Express zu erläutern.

Beispiel für den ersten Schritt

Das Ausgabeprotokoll sieht wie folgt aus, einschließlich Protokolldruckzeit, Protokollebene, Protokollklassifizierung und Protokollinhalt.

// 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

Protokollebene

logger.setLevel('INFO'); bedeutet, dass das Protokoll der niedrigsten Ebene, das Sie drucken möchten, INFO ist, also so etwas wie logger heißt . Bei Schnittstellen mit niedrigeren Ebenen als INFO, wie beispielsweise debug(), wird das Protokoll nicht gedruckt.

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

Protokollkategorie

Zusätzlich zu Ebenen können Protokolle auch klassifiziert werden, log4js.getLogger(category), wie unten gezeigt

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

Appenders

Appenders gibt den Speicherort der Protokollausgabe an. Sie können mehrere gleichzeitig konfigurieren und sie mithilfe der Kategorie unterscheiden. Beispielsweise wendet log4js.getLogger('info') die Konfiguration an, deren Typ dateFile ist.

Es ist zu erkennen, dass die Konfiguration mit dem Typ console keine Kategorie deklariert, daher werden alle Protokolle auf der Konsole gedruckt.

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

Expressanwendung

Ein relativ einfaches Beispiel ist wie folgt: Alle Protokolle werden auf der Konsole gedruckt.

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);

Zugriff auf http://127.0.0.1:3000, das Druckprotokoll lautet wie folgt

[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 >log4js.connectLogger(logger), Sie können die Protokollebene deklarieren.

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

// 日志的级别是 WARN 
app.use( log4js.connectLogger(logger, {level: 'WARN'}) );

Beachten Sie, dass das Protokoll nicht gedruckt wird, wenn die deklarierte Protokollebene niedriger ist als die durch logger.setLevel(level) definierte Ebene, wie im folgenden Beispiel.

logger.setLevel('INFO'); 

app.use( log4js.connectLogger(logger, {level: 'DEBUG'}) );

Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.

Verwandte Artikel:

Wie kann das Problem gelöst werden, dass Vue keine Änderungen in Arrays oder Objekten erkennen kann?

Welche Methoden gibt es, um der Erkennungssequenz in Vue neue Attribute von Objekten hinzuzufügen?

So generieren Sie Zufallszahlen in JS (ausführliches Tutorial)

Das obige ist der detaillierte Inhalt vonInformationen zur tatsächlichen Verwendung von log4js in Express. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn