2017-01-05 4 views
0

Ich möchte mich in eine Datei einloggen, wenn ich nur eine Fehlerantwort vom Client bekomme. Und ich möchte Nachrichten am Terminal ausdrucken, wenn ich die anderen bekomme. Also verwende ich express und log4js so.Wie logge ich mich mit log4js ein, wenn ich eine Fehlerantwort bekomme?

Hier ist ein Teil meines Codes.

const log4js = require('log4js'), 
    express = require('express'), 
    app = express(); 

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

const fileLogger = log4js.getLogger('file'), 
    consoleLogger = log4js.getLogger('console'); 

fileLogger.setLevel('ERROR'); 

app.enable('trust proxy'); 
app.use(log4js.connectLogger(fileLogger, { format: ':method :url' })); 
app.use(log4js.connectLogger(consoleLogger, { level: 'auto', format: ':method :url' })); 

erwartete ich, dass Fehlerantwort durch Filelogger gefiltert wird dann eine Protokollnachricht in logs.log geschrieben wird, und die anderen werden durch Console filtriert, dann wird die Nachricht am Terminal ausgedruckt, aber nicht.

Gibt es einen guten Weg, es mit connectLogger zu lösen?

Antwort

0

Ich bezog mich auf this und ich wusste, dass es unmöglich ist, connectLogger mehrfach für Express-Routing zu verwenden.

0

Rufen Sie einen anderen Kategorielogger auf, um das Protokoll für verschiedene Aktionen anzuzeigen.

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

Benutzer connectLogger nur einmal in app.js!

Verwandte Themen