在NodeJS中创建日志文件

问题描述:

如何在NodeJS中创建和保存日志文件以进行测试?
日志文件应该包含进行测试的成功/失败比率。
我还没有尝试过任何东西,因为我是NodeJs的新手。在NodeJS中创建日志文件

+0

成功/失败率或成功/失败的消息? – rresol

+0

你可以使用记录器像winston – AJS

+0

关闭重复的 http://stackoverflow.com/questions/8393636/node-log-in-a-file-instead-of-the-console – keshavDulal

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

尝试添加一些解释也许?一般来说,仅有代码的答案并不是非常有用。此外,这不会回答OP问题,它只会将所有内容转发到文件。 – xShirase

首先,您是否知道npm
如果否,则阅读/研究它。
其他,然后好。注意适合记录任务的npm模块。
我会推荐你​​winston-logger

在项目中安装温斯顿为:

npm install winston --save 

这里准备使用外的盒子,我在我的项目经常使用作为下utils的logger.js的配置。

/** 
* 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 
}; 

然后简单地导入任何需要的地方,因为这:

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

然后你就可以登录成功为:

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

和错误为:

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

它还会记录所有成功日志d在日志目录下以日期方式显示错误日志,如您在此处所看到的。
log direcotry

我在项目中使用“accesslog”而不是“successlog”作为关键字。
而我没有得到你的意思是'成功/失败率'。 为了得到这个比例,简单的计算一下。时间成功和错误日志被记录。

+0

我正在使用确切的配置,但未生成日志文件。我在控制台中看到日志。 – user2180794