我们使用 winston 和 express-winston 记录日志。新建 logs 目录存放日志文件,修改 index.js,在:
index.js
var pkg = require('./package');
下引入所需模块:
var winston = require('winston');
var expressWinston = require('express-winston');
将:
// 路由
routes(app);
修改为:
// 正常请求的日志
app.use(expressWinston.logger({
transports: [
new (winston.transports.Console)({
json: true,
colorize: true
}),
new winston.transports.File({
filename: 'logs/success.log'
})
]
}));
// 路由
routes(app);
// 错误请求的日志
app.use(expressWinston.errorLogger({
transports: [
new winston.transports.Console({
json: true,
colorize: true
}),
new winston.transports.File({
filename: 'logs/error.log'
})
]
}));
可以看出:我们将正常请求的日志打印到终端并写入了 logs/success.log
,将错误请求的日志打印到终端并写入了 logs/error.log
。需要注意的是:记录正常请求日志的中间件要放到 routes(app)
之前,记录错误请求日志的中间件要放到 routes(app)
之后。