Skip to content

Commit

Permalink
Don't call (format) if we're only logging 1 argument.
Browse files Browse the repository at this point in the history
  • Loading branch information
abscondment committed May 18, 2011
1 parent 65359e5 commit a963539
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/justlogit.clj
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,19 @@
(>= (or (int-level level) Integer/MAX_VALUE)
(or (int-level @*log-level*) Integer/MIN_VALUE)))

(defn format-if-needed [& args]
(apply
(if (> (count args) 1) format str)
args))

(defmacro log [level throwable & args]
`(when (enabled? ~level)
(let [s# (@*log-formatter*
{:timestamp (java.util.Date.)
:namespace (.name ~*ns*)
:level (name ~level)
:throwable ~throwable
:message (format ~@args)})]
:message (format-if-needed ~@args)})]
(locking @*log-writer*
(.write @*log-writer* s#)
(.flush @*log-writer*)))))
Expand Down
2 changes: 2 additions & 0 deletions test/justlogit_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,8 @@
(set-log-level :warn))

(deftest arguments
(logs-message :fatal "100% broken!" (fatal "100% broken!"))
(is (thrown? java.util.FormatFlagsConversionMismatchException (fatal "%s is 100% broken!" "foo")))
(logs-message :fatal "Hi foo" (fatal "Hi %s" "foo"))
(logs-message :fatal "Hi 1 foo" (fatal "Hi %d %s" 1 (reify Object (toString [_] "foo")))))

Expand Down

0 comments on commit a963539

Please sign in to comment.