Middleware Logger
Un outil de journalisation simple.
Importation
import { Hono } from 'hono'
import { logger } from 'hono/logger'Utilisation
const app = new Hono()
app.use(logger())
app.get('/', (c) => c.text('Hello Hono!'))Détails de la journalisation
Le middleware Logger journalise les informations suivantes pour chaque requête :
- Requête entrante : Journalise la méthode HTTP, le chemin et la requête entrante.
- Réponse sortante : Journalise la méthode HTTP, le chemin de la requête, le code de statut de la réponse et les durées de requête/réponse.
- Coloration des codes de statut : Les codes de statut des réponses sont affichés en couleur pour faciliter la lecture et identifier rapidement les catégories de statut. Chaque catégorie de codes de statut est représentée par une couleur différente.
- Temps écoulé : La durée du cycle requête/réponse est journalisée dans un format lisible, en millisecondes (ms) ou en secondes (s).
Avec le middleware Logger, vous pouvez facilement suivre les requêtes et les réponses de votre application Hono et identifier rapidement les problèmes ou les goulots d’étranglement de performance.
Vous pouvez également étendre le middleware en fournissant votre propre fonction PrintFunc pour adapter la journalisation.
Conseil
Pour désactiver la coloration des codes de statut, définissez une variable d’environnement NO_COLOR. Il s’agit d’une méthode courante pour désactiver les séquences d’échappement de couleur ANSI dans les bibliothèques de journalisation, décrite sur https://no-color.org/. Notez que Cloudflare Workers ne possède pas d’objet process.env ; les journaux y sont donc affichés en texte brut par défaut.
PrintFunc
Le middleware Logger accepte une fonction PrintFunc facultative comme paramètre. Cette fonction permet de personnaliser la journalisation et d’ajouter des messages supplémentaires.
Options
facultatif fn: PrintFunc(str: string, ...rest: string[])
str: Fourni par l’outil de journalisation....rest: Propriétés de chaîne supplémentaires à afficher dans la console.
Exemple
Configurer une fonction PrintFunc personnalisée pour le middleware Logger :
export const customLogger = (message: string, ...rest: string[]) => {
console.log(message, ...rest)
}
app.use(logger(customLogger))Configurer l’outil de journalisation personnalisé dans une route :
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
})