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 方法、請求路徑、回應狀態碼以及請求/回應時間。
- 狀態碼著色:回應狀態碼會以顏色編碼,以便更好地檢視並快速識別狀態類別。不同的狀態碼類別會以不同的顏色表示。
- 經過時間:請求/回應週期所花費的時間會以人類可讀的格式記錄,以毫秒 (ms) 或秒 (s) 為單位。
透過使用 Logger 中介軟體,您可以輕鬆監控 Hono 應用程式中請求和回應的流程,並快速識別任何問題或效能瓶頸。
您還可以透過提供自己的 PrintFunc
函式來進一步擴展中介軟體,以實現客製化的記錄行為。
PrintFunc
Logger 中介軟體接受可選的 PrintFunc
函式作為參數。此函式可讓您自訂記錄器並新增其他記錄。
選項
可選 fn: PrintFunc(str: string, ...rest: string[])
str
: 由記錄器傳遞。...rest
: 要列印到主控台的其他字串屬性。
範例
在 Logger 中介軟體中設定自訂 PrintFunc
函式
ts
export const customLogger = (message: string, ...rest: string[]) => {
console.log(message, ...rest)
}
app.use(logger(customLogger))
在路由中設定自訂記錄器
ts
app.post('/blog', (c) => {
// Routing logic
customLogger('Blog saved:', `Path: ${blog.url},`, `ID: ${blog.id}`)
// Output
// <-- POST /blog
// Blog saved: Path: /blog/example, ID: 1
// --> POST /blog 201 93ms
// Return Context
})