Plaster
New
List
Login
common-lisp
default
anonymous
2020.01.05 21:55:02
(defparameter *debug-level* :debug) (defparameter *debug-levels* `((:error . ,(lambda (l) (case l (:error t)))) (:warn . ,(lambda (l) (case l ((:error :warn) t)))) (:info . ,(lambda (l) (case l ((:error :warn :info) t)))) (:debug . ,(lambda (l) (case l ((:error :warn :info :debug) t)))))) (defun set-log-level (level) (ecase level ((:info :error :warn :debug) (setf *debug-level* level)))) (defun f-format (level control-string &rest format-arguments) (declare (type keyword *debug-level*)) (when (funcall (cdr (assoc *debug-level* *debug-levels*)) level) (forced-format *error-output* control-string format-arguments)))
Raw
Annotate
Repaste
Edit
Annotations
common-lisp
default
phoe
2020.01.05 22:12:49
(defparameter *debug-level* :error) (defparameter *debug-levels* '(:error :warn :info :debug)) (defun set-log-level (level) (if (member level *debug-levels*) (setf *debug-level* level) (error 'type-error :datum level :expected-type *debug-levels*))) (defun f-format (level control-string &rest format-arguments) (when (<= (position level *debug-levels*) (position *debug-level* *debug-levels*)) (format *error-output* control-string format-arguments)))
Raw
Repaste