ロガーミドルウェア
シンプルなロガーです。
インポート
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
})