可以通过'lack:middleware:accesslog‘包启用access-log。但我不知道这是否也可以记录到一个文件中,如果可以,如何记录。
有人这么做过吗?
发布于 2021-04-06 17:08:12
抱歉让你久等了。
下面是一个简单的日志记录到文件的示例。请注意,如果该文件是全新的,并且发生错误,则该文件可能会被删除。
加载以下表单后,浏览http://localhost:5000会向/tmp/accesslog.txt添加日志行。
(ql:quickload '(:clack :lack-middleware-accesslog))
(defun router (env)
(declare (ignorable env))
(let ((status-code 200)
(default-mime-type "text/plain")
(greeting "Hello world"))
(list status-code
(list :content-type default-mime-type)
(list greeting))))
(defparameter *app* 'router)
(defvar *log-stream* (open "/tmp/accesslog.txt"
:direction :output
:if-does-not-exist :create
:if-exists :append))
(defun file-logger (logtext)
(write-line logtext *log-stream*)
(finish-output *log-stream*))
(defparameter *app-with-logging*
(funcall lack.middleware.accesslog:*lack-middleware-accesslog*
*app*
:logger 'file-logger))
(defparameter *handler* (clack:clackup *app-with-logging* :port 5000))
;; (progn (clack.handler:stop *handler*) (close *log-stream*))https://stackoverflow.com/questions/62452946
复制相似问题