     ([logger component level message]
      (clojure.tools.logging/log (component-name component) level nil message))))
 
-(extend-type DummyLogger
-  ILogger
-  (-log [& _]))
+

;;; Extend Logger 

(defn ^:private component-name [c]
  (.getSimpleName (class c)))

(extend-type CTLLogger
  ILogger

            clojure.tools.logging))

;;; Logger is a special component. Instead of being available via
;;; `component/using' we automatically inject it into every component
;;; in the system. That wasy ::logger is available everywhere and can
;;; be used like:
;;;
;;; (log/info some-component ...)
;;;
;;; That allows us to log the name of the logging component & access
;;; its state. It also frees us from explicitly declaring ::logger as
;;; a dependency of every component from which we want to log
;;; something.

(defprotocol ILogger
  (-log
