Skip to content

Commit 5ff82e8

Browse files
camilledalmerasjeapostrophe
authored andcommitted
Update dispatch-log.rkt
1 parent 8c465bd commit 5ff82e8

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

web-server-lib/web-server/dispatchers/dispatch-log.rkt

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
[paren-format format-req/c]
1818
[extended-format format-req/c]
1919
[apache-default-format format-req/c]
20+
[combined-log-format format-req/c]
2021
[interface-version dispatcher-interface-version/c]
2122
[make (->* ()
2223
(#:format (or/c log-format/c format-req/c)
@@ -43,7 +44,9 @@
4344
[(extended)
4445
extended-format]
4546
[(apache-default)
46-
apache-default-format]))
47+
apache-default-format]
48+
[(combined)
49+
combined-log-format]))
4750

4851
(define (request-line-raw req)
4952
(format "~a ~a HTTP/1.1"
@@ -59,6 +62,25 @@
5962
(define apache-default-format
6063
(make-format "~a - - [~a] \"~a\" - -\n" apache-default-format/obj))
6164

65+
(define (combined-log-format/obj req)
66+
(define request-time (srfi-date:current-date))
67+
(define referer (let ([R (headers-assq* #"Referer" (request-headers/raw req))])
68+
(if R
69+
(string-append "\"" (bytes->string/utf-8 (header-value R)) "\"")
70+
"-")))
71+
(define user-agent (let ([UA (headers-assq* #"User-Agent" (request-headers/raw req))])
72+
(if UA
73+
(string-append "\"" (bytes->string/utf-8 (header-value UA)) "\"")
74+
"-")))
75+
(list (request-client-ip req)
76+
(srfi-date:date->string request-time "~d/~b/~Y:~T ~z")
77+
(request-line-raw req)
78+
referer
79+
user-agent))
80+
81+
(define combined-log-format
82+
(make-format "~a - - [~a] \"~a\" - - ~a ~a\n" combined-log-format/obj))
83+
6284
(define (paren-format/obj req)
6385
(list (list 'from (request-client-ip req)
6486
'to (request-host-ip req)
@@ -81,5 +103,6 @@
81103

82104
(module+ private
83105
(provide apache-default-format/obj
106+
combined-log-format/obj
84107
paren-format/obj
85108
extended-format/obj))

0 commit comments

Comments
 (0)