Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Allow `pspy` to capture time for exception-throwing bodies (thanks Ja…

…cek Lach)
  • Loading branch information...
commit 95109b7451b00a4aebeee671899d64e84ec5a5f5 1 parent 807cb40
@ptaoussanis authored
Showing with 9 additions and 8 deletions.
  1. +2 −2 README.md
  2. +1 −1  project.clj
  3. +6 −5 src/taoensso/timbre/profiling.clj
View
4 README.md
@@ -1,7 +1,7 @@
**[API docs](http://ptaoussanis.github.io/timbre/)** | **[CHANGELOG](https://github.com/ptaoussanis/timbre/blob/master/CHANGELOG.md)** | [contact & contributing](#contact--contributing) | [other Clojure libs](https://www.taoensso.com/clojure-libraries) | [Twitter](https://twitter.com/#!/ptaoussanis) | current [semantic](http://semver.org/) version:
```clojure
-[com.taoensso/timbre "2.3.0"] ; See CHANGELOG for breaking changes since 1.x
+[com.taoensso/timbre "2.3.1"] ; See CHANGELOG for breaking changes since 1.x
```
# Timbre, a (sane) Clojure logging & profiling library
@@ -26,7 +26,7 @@ Logging with Java can be maddeningly, unnecessarily hard. Particularly if all yo
Add the necessary dependency to your [Leiningen](http://leiningen.org/) `project.clj` and `require` the library in your ns:
```clojure
-[com.taoensso/timbre "2.3.0"] ; project.clj
+[com.taoensso/timbre "2.3.1"] ; project.clj
(ns my-app (:require [taoensso.timbre :as timbre
:refer (trace debug info warn error fatal spy with-log-level)])) ; ns
```
View
2  project.clj
@@ -1,4 +1,4 @@
-(defproject com.taoensso/timbre "2.3.0"
+(defproject com.taoensso/timbre "2.3.1"
:description "Clojure logging & profiling library"
:url "https://github.com/ptaoussanis/timbre"
:license {:name "Eclipse Public License"
View
11 src/taoensso/timbre/profiling.clj
@@ -52,11 +52,12 @@
`(if-not *pdata*
(do ~@body)
(let [name# ~name
- start-time# (System/nanoTime)
- result# (do ~@body)
- elapsed# (- (System/nanoTime) start-time#)]
- (swap! *pdata* #(assoc % name# (conj (% name# []) elapsed#)))
- result#))))
+ start-time# (System/nanoTime)]
+ (try
+ ~@body
+ (finally
+ (let [elapsed# (- (System/nanoTime) start-time#)]
+ (swap! *pdata* #(assoc % name# (conj (% name# []) elapsed#))))))))))
(defmacro p [name & body] `(pspy ~name ~@body)) ; Alias
Please sign in to comment.
Something went wrong with that request. Please try again.