wai-extra- Provides some basic WAI handlers and middleware.

Safe HaskellNone




Basic stdout logging

logStdout :: Middleware Source #

Production request logger middleware.

This uses the Apache logging format, and takes IP addresses for clients from the socket (see IPAddrSource for more information). It logs to stdout.

logStdoutDev :: Middleware Source #

Development request logger middleware.

This uses the Detailed True logging format and logs to stdout.

Create more versions

data RequestLoggerSettings Source #

RequestLoggerSettings is an instance of Default. See Data.Default for more information.

outputFormat, autoFlush, and destination are record fields for the record type RequestLoggerSettings, so they can be used to modify settings values using record syntax.

outputFormat :: RequestLoggerSettings -> OutputFormat Source #

Default value: Detailed True.

autoFlush :: RequestLoggerSettings -> Bool Source #

Only applies when using the Handle constructor for destination.

Default value: True.

type OutputFormatterWithDetailsAndHeaders Source #


 = ZonedDate

When the log message was generated

-> Request

The WAI request

-> Status

HTTP status code

-> Maybe Integer

Response size

-> NominalDiffTime

Duration of the request

-> [ByteString]

The request body

-> Builder

Raw response

-> [Header]

The response headers

-> LogStr 

Same as OutputFormatterWithDetails but with response headers included

This is useful if you wish to include arbitrary application data in your logs, e.g., an authenticated user ID, which you would set in a response header in your application and retrieve in the log formatter.

Since: 3.0.27

type Callback = LogStr -> IO () Source #

data IPAddrSource #

Source from which the IP source address of the client is obtained.



From the peer address of the HTTP connection.


From X-Real-IP: or X-Forwarded-For: in the HTTP header.


From the peer address if header is not found.