Log4CL

Description

Log4CL is high performance extensible logging library for Common Lisp.

We are currently looking for a competent person who will fix various log4slime quirks (Slime integration module written in Emacs Lisp).

Features

  • Modeled after Log4J with the familiar concepts such as log categories, appenders and layouts

  • High performance implementation that minimizes consing, with benchmarking showing it faster then log4j in most cases.

  • Buffered and un-buffered stream appenders, console appender, file appender and daily rolling file appender with configurable name are all implemented. Auto-flushing of buffered appenders by background thread.

  • Automatic naming of log categories, so that a log statement that does not specifically name a logger, appearing in a function SOME-PACKAGE:FOO inside of a local flet function BAR, will automatically log into the category SOME-PACKAGE:FOO:BAR

  • Appenders, layouts, and most everything else is implemented via CLOS, and can be easily changed/extended/customized. Automatic log category naming is also implemented via CLOS and can be specialized per-package, so packages can implement their own custom naming options.

  • Easy/abbreviated configuration function for interactive REPL work, with several pre-defined "sane" configurations, as well as traditional log4j like configuration via properties file, with option to auto-reload on changes.

  • Pattern layout, with several enhancements, such as options to modify separator and case (including invert) of log categories, for example one can print log category FOO:BAR:BAZ as foo--bar--baz

  • Multiple logging hierarchies support, with each having an completely independent configuration with regards to log levels and appenders, suitable for example for virtual hosts.

  • Extensive test suite with over 400+ assertions.