CL-STM

Logging 

(deflogger stm-logger ()
  :level +dribble+
  :appender (new 'brief-stream-log-appender :stream *debug-io*))
(deflogger stm.check   (stm-logger))
(deflogger stm.commit  (stm-logger))
(deflogger stm.execute (stm-logger))
(deflogger stm.orelse  (stm-logger))
(deflogger stm.perform (stm-logger))
(defun stm-logger.level ()
  (log.level (get-logger 'stm-logger)))
(defun (setf stm-logger.level) (level)
  (setf (log.level (get-logger 'stm-logger)) level))