Morgan是一个node.js关于http请求的日志中间件
安装模块
npm install morgan --save #保存到package.json的依赖列表
使用方法
在终端打印日志
...
var logger = require('morgan');
...
app.use(logger('dev'));
...
每次http请求,express实例都会输出日志,并且使用一致的格式
GET / 200 338.136 ms - 170
POST / 404 60.506 ms - 1225
GET /users 200 2.432 ms - 23
POST /users 404 43.958 ms - 1225
将日志写入文件
var express = require('express');
var logger = require('morgan');//日志模块
var fs = require('fs');//文件模块
var app = express();
var accessLogStream = fs.createWriteStream(__dirname+'/access.log',{flags:'a'});//创建一个写入流
app.use(logger('combined',{stream:accessLogStream}));//将日志写入文件
app.get('/',function(req,res){
res.send('hello world');
})
app.listen(3000);
核心API
morgan的API非常少,使用频率最高的就是morgan(),作用是返回一个express日志中间件。
morgan(format, options)
参数说明如下:
format
:可选,morgan与定义了几种日志格式,每种格式都有对应的名称,比如combined、short等,默认是default。不同格式的差别可参考这里。下文会讲解下,如果自定义日志格式。
options
:可选,配置项,包含stream(常用)、skip、immediate。
stream
:日志的输出流配置,默认是process.stdout。
skip
:是否跳过日志记录,使用方式可以参考这里。
immediate
:布尔值,默认是false。当为true时,一收到请求,就记录日志;如果为false,则在请求返回后,再记录日志。