Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 如何让Clack将访问日志写入文件?_Http_Web_Common Lisp - Fatal编程技术网

Http 如何让Clack将访问日志写入文件?

Http 如何让Clack将访问日志写入文件?,http,web,common-lisp,Http,Web,Common Lisp,可以通过“缺少:中间件:访问日志”包启用访问日志。 但我不知道这是否也可以登录到一个文件,如果,如何 有人这么做吗?抱歉让你久等了 下面是一个记录到文件的简单示例。请注意,如果文件是全新的,并且发生错误,则可能会删除该文件 加载以下表单后,浏览http://localhost:5000 将日志行添加到/tmp/accesslog.txt (ql:quickload '(:clack :lack-middleware-accesslog)) (defun router (env) (decl

可以通过“缺少:中间件:访问日志”包启用访问日志。 但我不知道这是否也可以登录到一个文件,如果,如何


有人这么做吗?

抱歉让你久等了

下面是一个记录到文件的简单示例。请注意,如果文件是全新的,并且发生错误,则可能会删除该文件

加载以下表单后,浏览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*))