コンテンツにスキップ

ロガーミドルウェア

シンプルなロガーです。

インポート

TypeScript
import { Hono } from 'hono'
import { logger } from 'hono/logger'

使用方法

TypeScript
const app = new Hono()

app.use(logger())
app.get('/', (c) => c.text('Hello Hono!'))

ログの詳細

ロガーミドルウェアは、各リクエストについて以下の詳細をログに記録します。

  • **受信リクエスト**: HTTPメソッド、リクエストパス、受信リクエストをログに記録します。
  • **送信レスポンス**: HTTPメソッド、リクエストパス、レスポンスステータスコード、リクエスト/レスポンスタイムをログに記録します。
  • **ステータスコードの色分け**: レスポンスステータスコードは、視認性を高め、ステータスのカテゴリを迅速に識別するために色分けされています。異なるステータスコードカテゴリは、異なる色で表されます。
  • **経過時間**: リクエスト/レスポンスサイクルにかかった時間は、ミリ秒(ms)または秒(s)のいずれかで、人間が読める形式でログに記録されます。

ロガーミドルウェアを使用することで、Honoアプリケーションのリクエストとレスポンスの流れを簡単に監視し、問題やパフォーマンスのボトルネックを迅速に特定できます。

独自の`PrintFunc`関数を提供することで、ミドルウェアをさらに拡張し、ログの動作をカスタマイズすることもできます。

PrintFunc

ロガーミドルウェアは、オプションで`PrintFunc`関数をパラメータとして受け入れます。この関数を使用すると、ロガーをカスタマイズし、追加のログを追加できます。

オプション

オプション fn: `PrintFunc(str: string, ...rest: string[])`

  • `str`:ロガーによって渡されます。
  • `...rest`:コンソールに出力される追加の文字列プロパティ。

カスタム`PrintFunc`関数をロガーミドルウェアに設定する

TypeScript
export const customLogger = (message: string, ...rest: string[]) => {
  console.log(message, ...rest)
}

app.use(logger(customLogger))

ルートにカスタムロガーを設定する

TypeScript
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ライセンスでリリースされています。