Add log4cl and accesslog middleware

This commit is contained in:
Akira Tempaku 2024-04-19 13:58:21 +09:00
parent e09900ae70
commit 1aa438112b
6 changed files with 25 additions and 4 deletions

1
hp.asd
View file

@ -8,3 +8,4 @@
:in-order-to ((test-op (test-op "hp-tests"))))
(register-system-packages "lack-middleware-static" '(:lack.middleware.static))
(register-system-packages "lack-middleware-accesslog" '(:lack.middleware.accesslog))

1
qlfile
View file

@ -4,3 +4,4 @@ ql cl-jingle
git piccolo https://github.com/skyizwhite/piccolo.git
git ningle-fbr https://github.com/skyizwhite/ningle-fbr.git
ql cl-ppcre
ql log4cl

View file

@ -26,3 +26,7 @@
(:class qlot/source/ql:source-ql
:initargs (:%version :latest)
:version "ql-2023-10-21"))
("log4cl" .
(:class qlot/source/ql:source-ql
:initargs (:%version :latest)
:version "ql-2023-10-21"))

View file

@ -32,8 +32,9 @@
:directory "src/routes")
(jg:static-path *app* "/assets/" "src/assets/")
(jg:install-middleware *app* mw:*public-files*)
(jg:install-middleware *app* mw:*recovery*)
(jg:install-middleware *app* mw:*normalize-path*)
(jg:install-middleware *app* mw:*recovery*))
(jg:install-middleware *app* mw:*accesslog*))
(defun update ()
(stop)

View file

@ -0,0 +1,14 @@
(defpackage #:hp/middlewares/accesslog
(:use #:cl)
(:import-from #:lack.middleware.accesslog
#:*lack-middleware-accesslog*)
(:import-from #:log4cl)
(:export *accesslog*))
(in-package #:hp/middlewares/accesslog)
(defparameter *accesslog*
(lambda (app)
(funcall *lack-middleware-accesslog*
app
:logger (lambda (message)
(log:info message)))))

View file

@ -1,15 +1,15 @@
(defpackage #:hp/middlewares/recovery
(:use #:cl)
(:import-from #:log4cl)
(:export #:*recovery*))
(in-package #:hp/middlewares/recovery)
;;; TODO: insert logger
(defparameter *recovery*
(lambda (app)
(lambda (env)
(handler-case
(funcall app env)
(error (c)
(log:error "Unhandled error caught: ~a" c)
`(500 (:content-type "text/plain")
(,(format nil "Internal Server Error: ~a~%" c))))))))
("Internal Server Error")))))))