跳至內容

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
})

以 MIT 許可證發布。