Boost logo

Boost :

From: John Torjo (john.lists_at_[hidden])
Date: 2004-10-22 13:22:46


>
> I disagree. Like most things STL it should be independent of a stream
> back end. And ideally independent of a formatting front end. It should
> only be a tagging, filtering, and multiplexing interface.

internally, I use std::stringstream
>
>> * Thread-safe (e.g. two threads can't have their output intermixed in
>> the output file/stream/whatever like they would with simple ostream<<
>> operators)
>
> Yes, but only if needed. It might not be appropriate depending on the
> front end or back end. For example you might be dumping the "output" to
> a database which would create individual debug records. No need for
> thread safety at the log level in that case.

indeed! that's what my lib does. You can choose to have a thread-safe
writer, but only if you wish.

>
>> * Multiple possible output media (files, sockets, syslog, Windows
>> event log, etc)
>
>
> Multiplexing.
>
yup, we have that ;)

>> * Multiple named channels each with configurable "threshold" (e.g.
>> error, warning, debug, etc)
>
>
> And configurable, so that you can program what each one does on both the
> front end and to which back end they go to.

yup, we have that.

>
>> * Messages which won't be logged shouldn't even go through the
>> formatting step. I'm pretty sure this cannot be done in a single call
>> w/o macros though. For example:
>>
>> BOOST_LOG (boost::log::debug, "This is a debug message: " <<
>> some_expensive_to_stream_class);
>>
>> Which would expand to something like:
>>
>> if (boost::log::is_enabled_for (boost::log::debug)) {
>> ostringstream __os; os << "This is a debug message: " <<
>> some_expensive_to_stream_class;
>> boost::log::force_write (boost::log::debug, os.str ());
>> }

yup, we have that.
>
>
> It's possible without macros for some compilers using careful template
> instaciations.

In my case, there's one macro: BOOST_LOG.

Best,
John

-- 
John Torjo,    Contributing editor, C/C++ Users Journal
-- "Win32 GUI Generics" -- generics & GUI do mix, after all
-- http://www.torjo.com/win32gui/
-- v1.5 - tooltips at your fingertips (work for menus too!)
    + bitmap buttons (work for MessageBox too!)
    + tab dialogs, hyper links, lite html

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk