本文へ移動

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

MIT ライセンスで公開されています。