首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让Clack将访问日志写到文件中?

如何让Clack将访问日志写到文件中?
EN

Stack Overflow用户
提问于 2020-06-18 22:57:47
回答 1查看 115关注 0票数 0

可以通过'lack:middleware:accesslog‘包启用access-log。但我不知道这是否也可以记录到一个文件中,如果可以,如何记录。

有人这么做过吗?

EN

回答 1

Stack Overflow用户

发布于 2021-04-06 17:08:12

抱歉让你久等了。

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

加载以下表单后,浏览http://localhost:5000会向/tmp/accesslog.txt添加日志行。

代码语言:javascript
复制
(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*))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62452946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档