File tree Expand file tree Collapse file tree 1 file changed +24
-1
lines changed
web-server-lib/web-server/dispatchers Expand file tree Collapse file tree 1 file changed +24
-1
lines changed Original file line number Diff line number Diff line change 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)
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 "
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)
81103
82104(module+ private
83105 (provide apache-default-format/obj
106+ combined-log-format/obj
84107 paren-format/obj
85108 extended-format/obj))
You can’t perform that action at this time.
0 commit comments