morgan_morgan的基本使用
- node.js的HTTP请求记录器中间件
基本使用
-
morgan(format,options)
-
使用预定义的格式字符串
-
morgan('tiny')
-
-
使用预定义令牌的格式字符串
-
morgan(':method :url :status :res[content-length] - :response-time ms')
-
-
使用自定义格式函数
-
morgan(function (tokens, req, res) { return [ tokens.method(req, res), tokens.url(req, res), tokens.status(req, res), tokens.res(req, res, 'content-length'), '-', tokens['response-time'](req, res), 'ms' ].join(' ') })
-
-
配置属性
-
immediate: 根据请求而不是响应写入日志行。这意味着即使服务器崩溃,请求也会被记录,但来自响应的数据(如响应代码、内容长度等)无法被记录。
-
skip: 函数来确定是否跳过日志记录,默认为false。这个函数将被称为skip(req,res)。
-
// EXAMPLE: only log error responses morgan('combined', { skip: function (req, res) { return res.statusCode < 400 } })
-
-
stream: 用于写入日志行的输出流,默认为process.stdout。
-
预定义格式
-
提供了各种预定义格式:
-
combined: 标准Apache组合日志输出。
-
:remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"
-
-
common: 标准Apache通用日志输出。
-
:remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length]
-
-
dev: 按响应状态着色的简明输出,以供开发使用。:status标记的颜色为绿色表示成功代码,红色表示服务器错误代码,黄色表示客户端错误代码,青色表示重定向代码,而非彩色表示信息代码。
-
:method :url :status :response-time ms - :res[content-length]
-
-
short: 短于默认值,还包括响应时间。
-
:remote-addr :remote-user :method :url HTTP/:http-version :status :res[content-length] - :response-time ms
-
-
tiny: 最小输出。
-
:method :url :status :res[content-length] - :response-time ms
-
-
Tokens
-
创建新的tokens
-
要定义令牌,只需使用名称和回调函数调用morgan.token()。此回调函数应返回一个字符串值。在这种情况下,返回的值可用作“:type”:
-
morgan.token('type', function (req, res) { return req.headers['content-type'] })
-
使用与现有令牌相同的名称调用morgan.token()将覆盖该令牌定义。 令牌函数的调用需要参数req和res,表示HTTP请求和HTTP响应。此外,令牌可以接受它选择自定义行为的进一步参数。
-