Boost logo

Boost :

From: Andrey Semashev (andysem_at_[hidden])
Date: 2007-05-20 11:52:55


I've uploaded to the Vault an alpha version of the Boost.Log library
I'm working on. It is available here:

During the development I tried to follow the results of previous
discussions in this list and requirements collected on the Wiki page:

At the current stage the library has a quite formed core
implementation and a framework for developing leaf components quite
ready for further extension with a few components implemented to play

There is no official documentation for now, but there is a
well-commented example/tutorial in the package, which is suitable to
catch the feeling of the lib and may be used to play around with the

The library builds in a thread-safe dll only for now. The HEAD of the
boost repository and "thread_rewrite" branch of Boost.Thread library
are required to build the lib. Support for other configurations will
be added later.

The purpose of this announcement is to collect feedback on the early
development stage. Please feel free to suggest any architectural
improvements and point out any bugs. Another thing I'd like to settle
is a set of features that should be available in the library out of
the box. In particular, a set of available sink types (for now only
text ostream sink is implemented), loggers and attributes. It is my
belief that the library should be proposed for review in a sensible
minimal set of features and be extended later, but finding this set is
not an easy task. Looking forward for your comments.

Some side announcements, proposals and comments:

- The "thread_rewrite" branch of Boost.Thread does not yet support
read_write_mutex, which is used by the Boost.Log. There is a reduced
implementation of it for pthreads. I'll be happy if someone from the
Boost.Thread development take it as a start to implement the final
implementation of the R/W mutex for pthreads.

- There is an empty_deleter class in the library package. It is
intended to be used with shared_ptr in cases when the pointed object
should not be deleted by the pointer (for example, when it resides on
the stack). Obviously, there is no point to allocate reference
counting object and perform thread-safe reference counting when this
deleter is provided. I propose to optimize shared_ptr with respect to
this deleter type and elide allocations and ref-counting when it is
provided in constructor or reset.

- Please see boost/log/detail/type_info_wrapper.hpp. There is a
std::type_info wrapper class that allows to copy, compare and order
type information objects via usual operators and constructors. This
allows to store type_info in containers, for example. Is it worth
extracting as a separate component to the boost directory.

- In the same file there is a BOOST_NO_UNSPECIFIED_BOOL macro
definition, which I believe should be in Boost.Config. Maybe it should
be moved there?

Best regards,
 Andrey                          mailto:andysem_at_[hidden]

Boost list run by bdawes at, gregod at, cpdaniel at, john at