Fre*_*aus 1 logging clojure hugsql
我想记录HugSQL执行的所有SQL字符串.我查看了文档,但找不到任何内容.什么是推荐的方式?
我通过挖掘hugsql源代码解决了这个问题.我的工作方式类似于转换生成函数的结果集(https://github.com/layerware/hugsql/issues/21):
(defn log-sqlvec [sqlvec]
(log/info (->> sqlvec
(map #(clojure.string/replace (or % "") #"\n" ""))
(clojure.string/join " ; "))))
(defn log-command-fn [this db sqlvec options]
(log-sqlvec sqlvec)
(condp contains? (:command options)
#{:!} (hugsql.adapter/execute this db sqlvec options)
#{:? :<!} (hugsql.adapter/query this db sqlvec options)))
(defmethod hugsql.core/hugsql-command-fn :! [sym] `log-command-fn)
(defmethod hugsql.core/hugsql-command-fn :<! [sym] `log-command-fn)
(defmethod hugsql.core/hugsql-command-fn :? [sym] `log-command-fn)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
452 次 |
| 最近记录: |