This is the mystery why I didn't review any logging library so far! Probably, because there is a great article exists which compares 8 logging libraries.
Today I want only mention that my library of choice is
log4cl. Mostly because if it's great integration with SLIME/SLY which helps when you have a lot's of "debug" logging in the app, but at some moment want to turn it on only for a function or a package.
Log4cl has great documentation which demonstrates all its features. Here I'll provide only a small example of its default logging output and ability to process additional arguments:
POFTHEDAY> (log:config :sane2 :debug) POFTHEDAY> (defun foo (first-arg second-arg) (log:info "Entering into the foo with" first-arg "and" second-arg)) POFTHEDAY> (foo 100500 "Blah") <INFO> [21:04:10] poftheday (foo) - Entering into the foo with FIRST-ARG: 100500 and SECOND-ARG: "Blah" ;; Now I want to process arguments with in format-like style: POFTHEDAY> (defun foo (first-arg second-arg) (log:info "Entering into the (foo ~A ~A)" first-arg second-arg)) POFTHEDAY> (foo 100500 "Blah") <INFO> [21:04:53] poftheday (foo) - Entering into the (foo 100500 Blah)
Tomorrow I'll show you addons I've made, to make
log4cl even more suitable for production applications.