Zum Inhalt springen

Logger-Middleware ​

Ein einfacher Logger.

Import ​

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

Verwendung ​

ts
const app = new Hono()

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

Protokollierte Details ​

Die Logger-Middleware protokolliert für jede Anfrage folgende Details:

  • Eingehende Anfrage: Protokolliert die HTTP-Methode, den Anfragepfad und die eingehende Anfrage.
  • Ausgehende Antwort: Protokolliert die HTTP-Methode, den Anfragepfad, den Antwortstatuscode und die Anfrage-/Antwortzeiten.
  • Farbige Statuscodes: Antwortstatuscodes werden farbig dargestellt, damit sie besser sichtbar sind und sich Statuskategorien schnell erkennen lassen. Verschiedene Kategorien erhalten unterschiedliche Farben.
  • Verstrichene Zeit: Die Dauer des Anfrage-/Antwortzyklus wird in einem lesbaren Format in Millisekunden (ms) oder Sekunden (s) protokolliert.

Mit der Logger-Middleware kannst du den Fluss von Anfragen und Antworten in deiner Hono-Anwendung einfach überwachen und Probleme oder Leistungsengpässe schnell erkennen.

Du kannst die Middleware außerdem mit einer eigenen Funktion PrintFunc erweitern, um das Protokollierungsverhalten anzupassen.

Tipp

Zum Deaktivieren der Färbung von Statuscodes kannst du die Umgebungsvariable NO_COLOR setzen. Dies ist ein gängiges Verfahren zum Deaktivieren von ANSI-Farbcodes in Logging-Bibliotheken und wird unter https://no-color.org/ beschrieben. Beachte, dass Cloudflare Workers kein Objekt process.env besitzt und daher standardmäßig reine Textprotokolle ausgibt.

PrintFunc ​

Die Logger-Middleware akzeptiert optional eine Funktion PrintFunc als Parameter. Damit kannst du den Logger anpassen und zusätzliche Protokolleinträge ausgeben.

Optionen ​

optional fn: PrintFunc(str: string, ...rest: string[]) ​

  • str: Vom Logger übergeben.
  • ...rest: Zusätzliche Zeichenfolgenargumente, die in der Konsole ausgegeben werden.

Beispiel ​

Eine eigene Funktion PrintFunc für die Logger-Middleware einrichten:

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

app.use(logger(customLogger))

Den eigenen Logger in einer Route einrichten:

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

Veröffentlicht unter der MIT-Lizenz.