在NodeJS中创建日志文件

时间:2016-11-30 04:05:20

标签: node.js logging npm mocha chai

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

2 个答案:

答案 0 :(得分:6)

首先你知道npm吗? 如果否,则阅读/研究它 好的,那么好。注意适合记录任务的npm模块 我会推荐你​​winston-logger

在项目中安装winston:

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

它还会将所有成功日志和错误日志记录在日志目录下的日期目录中,如此处所示。
log direcotry

我在项目中使用“accesslog”而不是“successlog”作为关键字 而且我没有明白你对“成功/失败率”的看法。 为了获得比率,只需计算一下。记录成功和错误日志的次数。

答案 1 :(得分:1)

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