2.8 Logging

► |  | Web Server: HTTP Server

1 | Dispatching Server
2 | Dispatchers
3 | Launching Servers
4 | Web Servers
5 | Internal APIs
6 | Troubleshooting and Tips
| Index

▼ | 2 | Dispatchers

2.1 | General
2.2 | Mapping URLs to Paths
2.3 | Sequencing
2.4 | Timeouts
2.5 | Lifting Procedures
2.6 | Filtering Requests
2.7 | Procedure Invocation upon Request
2.8 | Logging
2.9 | Password Protection
2.10 | Virtual Hosts
2.11 | Serving Files
2.12 | Serving Servlets
2.13 | Statistics
2.14 | Limiting Requests

On this page:

format-req/ c
paren-format
extended-format
apache-default-format
log-format/ c
log-format->format
make

top ← prev up next →

#### 2.8`` Logging

(require web-server/dispatchers/dispatch-log)
| package: web-server-lib

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

> value format-req/c : contract?

Equivalent to (-> request? string?).

> value 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)))

> value 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))))

> value apache-default-format : format-req/c

Formats a request like Apache’s default. However, Apache’s default includes information about the response to a request, which this function does not have access to, so it defaults the last two fields to 200 and 512.

> value log-format/c : contract?

Equivalent to (symbols 'parenthesized-default 'extended 'apache-default).

> procedure (log-format->format id) → format-req/c
> id : log-format/c

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

> procedure (make [#:format format #:log-path log-path]) → dispatcher/c
> format : format-req/c = paren-format
> log-path : (or/c path-string? output-port?) = "log"

Logs requests to log-path, which can be either a filepath or an output-port?, using format to format the requests. Then invokes next-dispatcher.
top ← prev up next →