express 日志 morgan

本文详细介绍了morgan模块在Express中的使用,包括安装、预定义的日志格式如combined、common、dev等,以及如何自定义tokens和编译格式。通过morgan,可以方便地将日志写入文件,并提供了单文件、循环日志和分割日志的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

morgan

安装

npm install morgan -D

使用

const morgan = require('morgan')

morgan(format,options)

format

使用给定的format和options创建一个新的morgan中间件

format:字符串、格式化字符串、生成日志功能的函数

format函数有三个参数:tokens、req、res.

tokens是所有已定义标记的对象,req是HTTP请求,res是HTTP响应

//使用预定义的格式化字符串
morgan('tiny')
//使用预定义tokens的格式化字符串
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(' ')
})
Options

immediate 在请求而不是响应写入日志行,这意味着即使服务器崩溃,也将记录请求,但是无法记录来自响应的数据(例如响应代码,内容长度等)

skip 确定是否跳过日志记录函数,默认false,该函数将调用skip(req,res)

//仅记录错误的响应日志
morgan('combined', {
    
    
  skip: function (req, res) {
    
     return res.statusCode < 400 }
})

stream: 写入日支行的输出流,默认为process.stdout

format 预定义格式

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值