--- log.lisp	2010-01-08 21:00:22.000000000 +0900
+++ patch/log.lisp	2010-11-25 00:09:00.000000000 +0900
@@ -92,3 +92,23 @@
   (when-let (message-logger (acceptor-message-logger *acceptor*))
     (apply message-logger log-level format-string format-arguments)))
   
+;;
+(defun create-remote-addr-matcher (regex)
+  (let ((scanner (create-scanner regex)))
+    (lambda (request)
+      (scan scanner (remote-addr* request)))))
+
+(defun create-user-agent-matcher (regex)
+  (let ((scanner (create-scanner regex)))
+    (lambda (request)
+      (scan scanner (user-agent request)))))
+
+(defun create-uri-matcher (regex)
+  (let ((scanner (create-scanner regex)))
+    (lambda (request)
+      (scan scanner (script-name* request)))))
+
+(defun no-log-p (request)
+  (some #'identity (loop for x in *no-log-matchers*
+	     (collect (funcall x request)))))
