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 関数を渡して、ログの動作をさらにカスタマイズできます。
ヒント
ステータスコードの色付けを無効にするには、NO_COLOR 環境変数を設定します。ログライブラリで ANSI カラーエスケープコードを無効にする一般的な方法で、https://no-color.org/ に説明があります。Cloudflare Workers には process.env オブジェクトがないため、デフォルトでプレーンテキストのログを出力します。
PrintFunc
Logger ミドルウェアは、省略可能な PrintFunc 関数を引数として受け取ります。ロガーのカスタマイズやログの追加が可能です。
オプション
optional 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
})