I am a fan of Michael Drogalis's library Dire:
https://github.com/MichaelDrogalis/dire
And I found I was adding logging to any function I wrote to catch errors,
so I wrote a macro that added in the logging:
(defmacro handle-error [object-to-catch symbol-to-target & args]
(let [result-fn (first args)]
`(dire/with-handler! ~symbol-to-target
~object-to-catch
(fn [e# & args#]
(let [error-key# (str ~symbol-to-target " " e#)
error-message# (str (stack/parse-exception e#) " " e# " "
args#)]
(timbre/log :trace (str error-key# " " error-message#)))
~(if (test/function? result-fn)
`(~result-fn))))))
That seemed to work.
But on a new project, I decided I wanted to use the "Erlang" style in Dire.
I thought this would only mean changing:
`(dire/with-handler! ~symbol-to-target
to:
`(dire/with-handler ~symbol-to-target
I am not aware of anything else I need to change.
I was also hoping to use this with Slingshot, but it seems that is only
possible with "with-handler!"? I tried a bunch of things but I could not
figure a way to make this work.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.