
Markus Schöpflin wrote:
John Torjo wrote:
Finally, have had some time to update the logging lib. Get it from: http://www.torjo.com/ (of course, it comes packed with docs)
Just a quick thought that came to my mind...
Did you consider using the syntax 'BOOST_LOG(dbg, "message" << foobar);' instead of 'BOOST_LOG(dbg) << "message" << foobar;'?
While I think the syntax you use looks far nicer, we ususally need the ability to be able to compile away the logging calls completely and this only can be done with the first form.
Why not do: #define BOOST_LOG(id) /##/ to remove the logs at compile time? The only issue AFAICS is that the above needs the BOOST_LOG usage on a single line. But if you need multi-line support, can't you have BOOST_LOG_BEGIN(id)/END like this: #define BOOST_LOG_BEGIN(id) /##* #define BOOST_LOG_END *##/ Usage: BOOST_LOG(dbg) << "message" << foobar; BOOST_LOG_BEGIN(dbg) << "message" << foobar; BOOST_LOG_END Effectively transforming this into: // << "message" << foobar; /* << "message" << foobar; */ You would need to be careful about usage of C-style comments within these macros: BOOST_LOG(dbg) << foobar; /* line above commented out: error at '*/' */ BOOST_LOG_BEGIN(dbg) << foobar; /**< error here: nested C-style comment */ BOOST_LOG_END Regards, Reece