如何记录类似于Clojure.tools.logging中的Pretty print(pprint)输出?

3

我正在使用org.clojure/tools.logging。 我想要一个能够漂亮地打印日志的函数,但是我找不到它。 例如,我想要打印的内容是:

{:status 401,
 :headers {"Content-Type" "application/octet-stream"},
 :body {:error "You don't login."}}

但是我调用的函数名是info,我得到了这个。
{:status 401, :headers {Content-Type application/octet-stream}, :body {:error You don't login.}}
1个回答

4
如何尝试这样的方式:
(require '[clojure.pprint :as pprint])

(defn pformat [& args]
        (with-out-str
          (apply pprint/pprint args)))

然后:

(require '[clojure.tools.logging :as log])

(log/info (pformat {:status 401,
                    :headers {"Content-Type" "application/octet-stream"},
                    :body {:error "You don't login."}}))

这会输出类似于以下的内容:

Apr 29, 2015 9:43:40 AM user invoke
INFO: {:headers {"Content-Type" "application/octet-stream"},
 :status 401,
 :body {:error "You don't login."}}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接