2016-11-30 4 views
-3

Wie erstellt und speichert man eine Protokolldatei in NodeJS zu Testzwecken?
Die Protokolldatei sollte das Erfolgs/Fehler-Verhältnis der durchgeführten Tests enthalten.
Ich habe noch nichts probiert, da ich neu bei NodeJs bin.Erstellen einer Protokolldatei in NodeJS

+0

Erfolg/Fehler-Verhältnis oder Erfolg/fehlgeschlagene Nachrichten? – rresol

+0

können Sie Logger wie Winston – AJS

+0

verwenden schließen Duplicate von http://StackOverflow.com/Questions/8393636/Node-log-in-Afile-instead-of-the-Console – keshavDulal

Antwort

0
require('mkdirp').sync('logs') // your log directory 

var logger = require('log4js') 

logger.configure({ 
    "appenders": [{ 
     "type": "console" 
    }, { 
     "type": "dateFile", 
     "category": "log", 
     "filename": "logs/exp", 
     "pattern": "yyMMdd.log", 
     "alwaysIncludePattern": true 
    }], 
    "replaceConsole": true 
}) 

logger.info('success') 
logger.error('fail') 
+1

versuchen, einige Erklärung vielleicht hinzufügen? Code-only-Antwort ist im Allgemeinen nicht sehr hilfreich. Auch das beantwortet keine OP-Frage, es leitet einfach alles an eine Datei weiter. – xShirase

5

Erstens wissen Sie über npm?
Wenn Nein, dann lesen/forschen darüber.
Sonst, dann gut. Achten Sie auf für die Protokollierung geeignete npm-Module.
Ich werde Sie empfehlen winston-logger.

winston in Ihrem Projekt installieren, wie:

npm install winston --save 

Hier ist eine Konfiguration einsatzbereit out-of-Box, die ich häufig in meinen Projekten als logger.js unter utils verwenden.

/** 
* Configurations of logger. 
*/ 
const winston = require('winston'); 
const winstonRotator = require('winston-daily-rotate-file'); 

const consoleConfig = [ 
    new winston.transports.Console({ 
    'colorize': true 
    }) 
]; 

const createLogger = new winston.Logger({ 
    'transports': consoleConfig 
}); 

const successLogger = createLogger; 
successLogger.add(winstonRotator, { 
    'name': 'access-file', 
    'level': 'info', 
    'filename': './logs/access.log', 
    'json': false, 
    'datePattern': 'yyyy-MM-dd-', 
    'prepend': true 
}); 

const errorLogger = createLogger; 
errorLogger.add(winstonRotator, { 
    'name': 'error-file', 
    'level': 'error', 
    'filename': './logs/error.log', 
    'json': false, 
    'datePattern': 'yyyy-MM-dd-', 
    'prepend': true 
}); 

module.exports = { 
    'successlog': successLogger, 
    'errorlog': errorLogger 
}; 

Und dann einfach importieren, wo immer diese benötigt:

const errorLog = require('../util/logger').errorlog; 
const successlog = require('../util/logger').successlog; 

Dann können Sie den Erfolg anmelde:

successlog.info(`Success Message and variables: ${variable}`); 

und Fehler wie:

errorlog.error(`Error Message : ${error}`); 

Es protokolliert auch alle Erfolgsprotokolle d error-loggt eine Datei unter dem Protokollverzeichnis datumsmäßig ein, wie Sie hier sehen können.
log direcotry

Ich habe "accesslog" anstelle von "successlog" als Schlüsselwort in meinem Projekt verwendet.
Und ich habe nicht verstanden, was Sie über "Erfolg/Misserfolg-Verhältnis" meinten. Um das Verhältnis zu erhalten, zählen Sie einfach die Nr. von Zeiten werden Erfolgs- und Fehlerprotokolle protokolliert.

+0

Ich verwende die genauen Konfigurationen, aber die Protokolldatei wird nicht generiert. Ich sehe die Protokolle in der Konsole. – user2180794

Verwandte Themen