@remix-run/logger-middleware
v0.1.2
Published
Middleware for logging HTTP requests and responses
Readme
logger-middleware
Middleware for logging HTTP requests and responses for use with @remix-run/fetch-router.
Logs information about HTTP requests and responses with customizable formatting.
Installation
npm install @remix-run/logger-middlewareUsage
import { createRouter } from '@remix-run/fetch-router'
import { logger } from '@remix-run/logger-middleware'
let router = createRouter({
middleware: [logger()],
})
// Logs: [19/Nov/2025:14:32:10 -0800] GET /users/123 200 1234Custom Format
You can use the format option to customize the log format. The following tokens are available:
%date- Date and time in Apache/nginx format (dd/Mon/yyyy:HH:mm:ss ±zzzz)%dateISO- Date and time in ISO format%duration- Request duration in milliseconds%contentLength- Response Content-Length header%contentType- Response Content-Type header%host- Request URL host%hostname- Request URL hostname%method- Request method%path- Request pathname + search%pathname- Request pathname%port- Request port%query- Request query string (search)%referer- Request Referer header%search- Request search string%status- Response status code%statusText- Response status text%url- Full request URL%userAgent- Request User-Agent header
let router = createRouter({
middleware: [
logger({
format: '%method %path - %status (%duration ms)',
}),
],
})
// Logs: GET /users/123 - 200 (42 ms)For Apache-style combined log format, you can use the following format:
let router = createRouter({
middleware: [
logger({
format: '%host - - [%date] "%method %path" %status %contentLength "%referer" "%userAgent"',
}),
],
})Custom Logger
You can use a custom logger to write logs to a file or other stream.
import { createWriteStream } from 'node:fs'
let logStream = createWriteStream('access.log', { flags: 'a' })
let router = createRouter({
middleware: [
logger({
log(message) {
logStream.write(message + '\n')
},
}),
],
})Related Packages
fetch-router- Router for the web Fetch API
License
See LICENSE
