
My colleague and I have just finished an initial implementation of a new logging library. We think we have some nice features that we hope may be of interest. 1) Each logging statement is a standalone object (thread-safe initialised), which can be controlled independently. Here are some of the consequences of this design choice: a) You can control whether a log statement is on/off based on file, file & line, function name or any other indexing scheme you can come up with (e.g. "application component") b) Each logging statement can have a separate list of "destinations". These can be turned on and off at runtime. c) We have lua bindings to the library, which is our primary way of controling the amount of output. 2) A statement which is "off" is cheap (i.e. no streaming happens) The main reason for this is that we want to be able to sprinkle a copious amount of log statements throughout our code and then turn them on/off should the need arise. 3) Intuitive interface: LOG (<list of destinations>) << "blah"; If you find the feature set interesting, let us know and we can start filling in some more details. We'd be willing to work on boostifying it should there be enough interest. Tom