/** * The logger middleware let's you log the request and response information to * the console, this can be useful to debug issues with the request and response. * * ```ts * import { createLoggerMiddleware } from "remix-utils/middleware/logger"; * * export const [loggerMiddleware] = createLoggerMiddleware(); * ``` * * To use it, you need to add it to the `middleware` array in your * `app/root.tsx` file. * * ```ts * import { loggerMiddleware } from "~/middleware/logger.server"; * export const middleware: Route.MiddlewareFunction[] = [loggerMiddleware]; * ``` * * Now, every request and response will be logged to the console. * * The logger middleware can be customized by passing an options object to the * `createLoggerMiddleware` function. * * ```ts * let [loggerMiddleware] = createLoggerMiddleware({ * logger: console, * precision: 2, * formatMessage(request, response, time) { * return `${request.method} ${request.url} - ${response.status} - ${time}ms`; * }, * }); * ``` * * The `logger` option let's you pass a custom logger, the `precision` option * let's you set the number of decimal places to use in the response time, and * the `formatMessage` option let's you customize the message that will be * logged. * @author [Sergio Xalambrí](https://sergiodxa.com) * @module Middleware/Logger */ import type { MiddlewareFunction } from "react-router"; export declare function createLoggerMiddleware({ logger, precision, formatMessage, }?: createLoggerMiddleware.Options): createLoggerMiddleware.ReturnType; export declare namespace createLoggerMiddleware { interface Options { /** * The logger to use for logging the request and response information. * @default globalThis.console */ logger?: Logger; /** * The number of significant digits to include in the response time. * Must be in the range 1 - 21, inclusive. * @default 3 */ precision?: number; formatMessage?(request: Request, response: Response, responseTime: string): string; } type ReturnType = [MiddlewareFunction]; interface Logger { error(...message: string[]): void; warn(...message: string[]): void; info(...message: string[]): void; debug(...message: string[]): void; } }