什么是 morgan-compact?
morgan-compact 是 Express.js 框架下处理 HTTP 请求日志的 npm 包。它是 morgan 的一个变体,它的日志记录相比 morgan 更为简洁,没有多余的信息,只记录了必要的信息,这有助于我们更快地定位问题。
如何使用 morgan-compact?
安装 morgan-compact
在命令行中输入以下命令即可完成包的安装:
npm install morgan-compact
或者在项目的
package.json
文件中加入 morgan-compact 依赖,然后运行npm install
即可完成安装:"dependencies": { "morgan-compact": "^0.1.0" }
引入 morgan-compact
在 Node.js 项目中使用 morgan-compact 需要先用 require 引入该包:
const morgan = require('morgan-compact');
使用 morgan-compact
在 Express.js 中使用 morgan-compact 也很容易,只需要将其作为中间件调用即可:
app.use(morgan('combined'));
这里的
'combined'
是 morgan-compact 内置的一种日志格式,可以将它更改为其他格式,例如:app.use(morgan(':date[iso] :method :url :status :response-time ms'));
这个格式会将请求的时间、方法、URL、状态和响应时间记录在请求日志中。
自定义 morgan-compact
我们还可以自定义 morgan-compact 的日志格式。以记录请求头和响应体大小为例:
const compactFormat = ':method :url :status :res[content-length] - :response-time ms'; morgan.token('res', (req, res) => { const headers = Object.values(res.getHeaders()) .reduce((header, curr) => header + curr.toString(), ''); return headers + JSON.stringify(res.locals); }); app.use(morgan(compactFormat));
在这里,我们为 morgan-compact 新增了一个
res
token,它将请求中的 headers 和响应体的 locals 字段一并记录在请求日志中。content-length
是 express 内置的,可以方便地记录响应的大小。访问服务器后,检查 Log 中的内容:
GET / 200 4 - 19.951 ms
我们可以看到,除了请求方法、URL、状态和响应时间外,还有一个
-
,它是请求头和响应体的总大小。这样,在排查某些数据错误时,它就能够帮助我们更好地定位问题。
总结
Node.js 对于日志的处理非常丰富,morgan-compact 只是其中一种方便又好用的日志处理工具。在实际项目中,我们应根据需求选择最适合的日志工具,并遵守相关的日志规范,帮助我们更好地排查问题,提升开发效率。
以上就是使用 morgan-compact 的一个简单教程,希望能对大家有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056eb181e8991b448e7760