|
Boost : |
From: Michael Lacher (michael.lacher_at_[hidden])
Date: 2007-04-05 04:04:50
Richard Day wrote:
[snip]
>> <snip>
>>
>> I am not an expert in design and in no position in rejecting any library
>> or whatever, and I have actually not even look into the code but IMO,
>> just as reading few pages of the doc, I think pantheios is not what we
>> are looking for. I would love to be wrong and that someone says,
>> "pantheios is what we were looking for all those years, let put it into
>> boost". I doubt it...
>>
[snip]
>
> I believe you will have an extremely hard time making a logging library
> that pleases everyone.
> You can please some of the people some of the time but you cant please
> all of the people all of the time.
> I hope we can come up with something that will be acceptable to enough
> people to make it into boost soon.
>
The way I see it there are two different things you need to consider
when talking about pleasing everyone:
1) What can the logging library actually do. This includes the filtering
possibilities, amount/types of sinks already included, extensibility, ...
I think its pretty straightforward how to actually implement channels,
sinks, ... and therefore most logging libraries supporting these
features will have a very similar design.
2) How to use the logging library. This includes the setting up of the
logging, and the actual logging itself. The setup is only done once, so
if it requires many API calls and can get somewhat complicated (if you
use any special features) it doesn't really matter. But log calls
themselves will actually number in the thousands. This is what i look
for first when looking at a logging library:
Can I write a log message that logs what i want, when i want it and in
the format i want it in a way thats easy and still looks sane ?
If this criteria is not fulfilled I would not use the library under any
circumstance and I guess many users will think similar. As an example
that was used earlier in this list:
logger << lazy(lambda::var(x) + ":" + y, _level = mpl::int_<2>());
Imho it is neither immediately apparent what this actually does (maybe
to boost and C++ gurus it is) nor would i want to write something like
this every time i log something.
Michael Lacher
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk