Logger 中间件
简单易用的日志中间件。
导入
ts
import { Hono } from 'hono'
import { logger } from 'hono/logger'用法
ts
const app = new Hono()
app.use(logger())
app.get('/', (c) => c.text('Hello Hono!'))日志内容
Logger 中间件会为每个请求记录以下信息:
- 入站请求:记录 HTTP 方法、请求路径以及请求内容。
- 出站响应:记录 HTTP 方法、请求路径、响应状态码以及请求/响应耗时。
- 状态码着色:不同范围的状态码会使用不同颜色,方便快速识别。
- 耗时显示:请求-响应的耗时以可读的格式输出(毫秒或秒)。
借助 Logger 中间件,你可以更轻松地监控 Hono 应用的请求/响应流,并快速定位问题或性能瓶颈。 你还可以传入自定义的 PrintFunc 来扩展日志输出方式。
PrintFunc
Logger 中间件可以接收一个可选的 PrintFunc 参数,用于自定义日志行为或追加额外信息。
选项
optional fn:PrintFunc(str: string, ...rest: string[])
str:由 Logger 中间件传入的主消息。...rest:需要一并输出到控制台的其他字符串。
示例
为 Logger 中间件提供自定义 PrintFunc:
ts
export const customLogger = (message: string, ...rest: string[]) => {
console.log(message, ...rest)
}
app.use(logger(customLogger))在路由中使用自定义日志:
ts
app.post('/blog', (c) => {
// 路由逻辑
customLogger('Blog saved:', `Path: ${blog.url},`, `ID: ${blog.id}`)
// 输出示例:
// <-- POST /blog
// Blog saved: Path: /blog/example, ID: 1
// --> POST /blog 201 93ms
// 返回 Context
})