clojure - 音色宏 'p' 无法解析,但其他音色宏可以解析

标签 clojure profiling timbre

每当我尝试在函数中包含 Timbre p 语句时,都会收到错误:

project.clj

 (defproject sketch "0.1.0-SNAPSHOT"
      :description "FIXME: write description"
      :url "http://example.com/FIXME"
      :license {:name "Eclipse Public License"
                :url "http://www.eclipse.org/legal/epl-v10.html"}
      :dependencies [[org.clojure/clojure "1.5.1"]
                     [com.taoensso/timbre "3.1.1"]])

core.clj

(ns user (:require [taoensso.timbre :as timbre])) 
(timbre/refer-timbre)

(defn tst [a]
  (p :tf (+ a a)))

输出(苹果酒/nrepl)

 Unable to resolve symbol: p in this context, compiling:(NO_SOURCE_PATH:2:3)

但是其他音色函数/宏,例如 profilespy 工作正常。

最佳答案

p 分析宏 is not exposed with refer-timbre ,文档似乎已经过时了。

(require
   '[taoensso.timbre.profiling :as profiling :refer (pspy pspy* profile defnp)])

you see here , p 只是 pspy

的别名
 (defmacro p [id & body] `(pspy ~id ~@body)) ; Alias

所以你可以使用pspy来代替。

关于clojure - 音色宏 'p' 无法解析,但其他音色宏可以解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22240249/

相关文章:

objective-c - 在 Objective-C 中使用不可变集合时,我该如何做 Clojure 之类的事情?

clojure - Clojure 列表中的惯用和懒惰最终为真

clojure - 在生产环形Clojure服务器上重新加载代码

python - 我如何猴子修补 PyQT 的 QApplication.notify() 来计时事件

iphone - 用 Shark 分析 iphone : Nothing happens after pressing start

java - 是否有 Clojure 或 Scala 的持久不可变 vector 的 Java 版本?

database - 为 postgres 查询设计索引

unit-testing - 使用 Midje 测试音色日志输出

clojure - 音色 `set-config!` 已更改数量,因此不知道如何使用它来将 std err/out 输出到文件