          (reify LoggerFactory
            (impl-name [_#]
              "java.util.logging")
-           (impl-get-logger [_# log-ns#]
-             (java.util.logging.Logger/getLogger (str log-ns#))))))
+           (impl-get-logger [_# logger-ns#]
+             (java.util.logging.Logger/getLogger (str logger-ns#))))))
     (catch Exception e nil)))
 
 (defn find-factory

      monitor (Object.)] ; sync monitor for calling setOut/setErr
  (defn log-capture!
    "Captures System.out and System.err, piping all writes of those streams to
    the logger. If unspecified, levels default to :info and :error, respectively.
    The specified log-ns value will be used to namespace all log entries.

    Note: use with-logs to redirect output of *out* or *err*.

    Warning: if the logging implementation is configured to output to System.out
    (as is the default with java.util.logging) then using this function will
    result in StackOverflowException when writing to the logger."
    ; Implementation Notes:
    ; - only set orig when nil to preserve original out/err
    ; - no enabled? check before making streams since that may change later
    ([log-ns]
      (log-capture! log-ns :info :error))
    ([log-ns out-level err-level]
      (locking monitor
        (compare-and-set! orig nil [System/out System/err])
        (System/setOut  (log-stream out-level log-ns))
        (System/setErr (log-stream err-level log-ns)))))
  (defn log-uncapture!
    "Restores System.out and System.err to their original values."
    []

         (reify LoggerFactory
           (impl-name [_#]
             "org.apache.commons.logging")
           (impl-get-logger [_# logger-ns#]
             (org.apache.commons.logging.LogFactory/getLog (str logger-ns#))))))
    (catch Exception e nil)))

(defn slf4j-logging
