
On 11/6/05, Hartmut Kaiser <hartmut.kaiser@gmail.com> wrote:
Hi all,
today starts the review of the Boost.Logging library written by John Torjo. It will end on November 16th.
[snip snip] Before I start, I'm very happy that this library is being considered for inclusion in Boost - I've been using it for some time now, and overall I have been very happy with it. - What is your evaluation of the design? I like the design. The concepts are very well thought out. My only stumbling block has been that the default log manager can only be extended in an all-or-nothing fashion, which makes extending the logging solution quite difficult. I would really like to have the option to simply replace the stream type in the default log manager, instead of the whole thing. This would make structured logging trivial. - What is your evaluation of the implementation? There are still a few rough edges which need to be ironed out. Specifically, there are a lot of unused parameters and signed/unsigned mismatches which make compilation with gcc a bit too noisy for my liking. There are quite a few TOTHINK etc. comments in the code, which suggests that the author isn't quite happy with the implementation details yet. These are, fortunately for me, mostly in areas which I do not use. - What is your evaluation of the documentation? The documentation lacks any rationale for the decisions made, and while it provides sufficient information for somebody who wants to use the default facilities (perhaps with a custom appender or two), I feel that the documentation could be improved by: - a high level, conceptual, overview of the library and the facilities it provides - adding rationale for design decisions - more information on extending the library, possibly with examples - I found myself guessing far too much. I also felt that more advanced examples (and tests!) would have been useful when starting out with the library. - What is your evaluation of the potential usefulness of the library? Extremely useful - I've already integrated it into one of our systems at work! - Did you try to use the library? With what compiler? Did you have any problems? As above, yes. I've used the library with vc71, Apple GCC 4, HP aCC 0.3.55 and Sun Studio 10 CC. I had to modify the source lightly to get rid of warnings, remove the use of boost::function (so that aCC, but a slightly older version, has a chance) and remove the DLL bits so that I wouldn't have to jump through too many hoops when moving the code into my source tree. As stated above, I've only built the library outside of Boost.Build, but I found the code and structure easy to understand and modify. If the library is accepted into Boost, and if aCC gets more capable, I would naturally use the Boost version of the code, not my own in-tree version. - How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? I've used the library extensively over the last three months. - Are you knowledgeable about the problem domain? Only insofar as I am aware of the problems of our existing logging systems at work, and how this solution addresses those areas. I feel that this library should be accepted into Boost, but that attention should be paid to the areas above (particularly the documentation for extenders). Regards, Michael