Whenever I try to include a Timbre p
statement in a function I get an error:
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)))
Output (cider/nrepl)
Unable to resolve symbol: p in this context, compiling:(NO_SOURCE_PATH:2:3)
But other Timbre functions/macros like profile
and spy
work fine.
The p
profiling macro is not exposed with refer-timbre, the documentation seems to be outdated.
(require
'[taoensso.timbre.profiling :as profiling :refer (pspy pspy* profile defnp)])
As you see here, p
is just an alias for pspy
(defmacro p [id & body] `(pspy ~id ~@body)) ; Alias
So you can use pspy
instead.