On this page:
format-req/ c
paren-format
extended-format
apache-default-format
log-format->format
make
Version: 4.1

5.8 Logging

 (require web-server/dispatchers/dispatch-log)

The web-server/dispatchers/dispatch-log module defines a dispatcher constructor for transparent logging of requests.

format-req/c : contract?

Equivalent to (-> request? string?).

paren-format : format-req/c

Formats a request by:

  (format "~s~n"

            (list 'from (request-client-ip req)

                  'to (request-host-ip req)

                  'for (url->string (request-uri req)) 'at

                  (date->string (seconds->date (current-seconds)) #t)))

extended-format : format-req/c

Formats a request by:

  (format "~s~n"

            `((client-ip ,(request-client-ip req))

              (host-ip ,(request-host-ip req))

              (referer ,(let ([R (headers-assq* #"Referer" (request-headers/raw req))])

                          (if R

                              (header-value R)

                              #f)))

              (uri ,(url->string (request-uri req)))

              (time ,(current-seconds))))

apache-default-format : format-req/c

Formats a request like Apache’s default.

(log-format->format id)  format-req/c

  id : symbol?

Maps 'parenthesized-default to paren-format, 'extended to extended-format, and 'apache-default to apache-default-format.

(make [#:format format #:log-path log-path])  dispatcher?

  format : format-req/c = paren-format

  log-path : path-string? = "log"

Logs requests to log-path by using format to format the requests. Then invokes next-dispatcher.