morgan日志中间件
$ npm install morgan -S # 下载
基本使用
var logger = require("morgan");
app.use(logger("dev")); // 将日志输出到控制台
// 方法 路径 状态码 时间 GET /users 200 53.454 ms - 23
将日志按照日期保存到日志文件中
var logger = require("morgan");
var rfs = require("rotating-file-stream");
// 将日志写入log目录文件中
// 解决:时区不一致的问题
logger.token("date", function() {
var p = new Date()
.toString()
.replace(/[A-Z]{3}\+/, "+")
.split(/ /);
return p[2] + "/" + p[1] + "/" + p[3] + ":" + p[4] + " " + p[5];
});
var accessLogStream = rfs.createStream("access.log", {
size: "10M", // 每10M大小轮换
interval: "1d", // 每天轮换
path: path.join(__dirname, "log") // 手动创建日志目录"/log"
});
app.use(logger("combined", { stream: accessLogStream }));
预定义日志格式
- format 即是日志格式, 支持自定义日志格式, 同时 morgan 提供了几个预定义选项:
// combined ip, 时间, 请求方法, 请求url, HTTP版本, 状态码, 响应内容长度, referrer, user-agent
// common ip, 时间, 请求方法, 请求url, HTTP版本, 状态码, 响应内容长度
// dev 请求方法, 请求url, 状态码, 响应时间, 响应内容长度
// short ip, 请求方法, 请求url, HTTP版本, 状态码, 响应内容长度, 响应时间
// tiny 请求方法, 请求url, 状态码, 响应内容长度, 响应时间