Boost logo

Boost :

Subject: Re: [boost] [log] Review-ready version in the Vault
From: Alexander Arhipenko (arhipjan_at_[hidden])
Date: 2009-02-14 07:13:33


On Sun, Feb 8, 2009 at 5:58 PM, Andrey Semashev
<andrey.semashev_at_[hidden]> wrote:
> After a long time of documenting, polishing and testing I'm glad to announce
> that Boost.Log has reached the level where public review request can be
> submitted. The automatic tests aren't entirely complete, however, the basic
> functionality is covered and most of what is not covered has been tried by
> hand.
>
>[snip...]
>
> Comments are welcome.
>

Hi, Andrey
First of all, thank you for your great efforts in creating and
submitting logging library to boost.
As for me, logging library is the most long-desired one to be in boost.
I've spent several hours (frankly speaking, several ten hours ;) )
writing simple test
applications that use boost::log.
My goal was to check if this library will satisfy our product's
requirements for
logging (Unfortunately, we don't have uniform logging solution at the moment).
Well, at first glance boost::log has almost everything that any sophisticated
user or programmer could except!
My testing platform was:
RHEL4
gcc (GCC) 4.1.2 20071124 (Red Hat 4.1.2-42).
I've used boost 1.38.0 and latest boost.log downloaded from vault.
I didn't discovered any issues except 2.

1 (minor): annoying warnings like
'class aaa has virtual functions but non-virtual destructor' with kilobytes of
related messages ('in instantiation of bla-bla ... instantiated from here' etc)

2 (major): rotating_ofstream seems not working correctly
when std::ios_base::app flag passed to rotating_ofstream ctor (or open
function).
In case of using that flag no file is created.
That's because in rotating_ofstream.hpp,
file_controller_base ctor m_OpenMode is generated as:

m_OpenMode |= std::ios_base::out | std::ios_base::trunc;
m_OpenMode &= ~std::ios_base::in;

ios_base::trunc and ios_base::app flags are "conflicting"
(at least in my stdcxx). So, the file is not opened.

I've also noticed that rotation is working only for one program run
(even if ios_base::app open mode is used).
I.e., I have application with static output to log. At first run 4 log
files are created. At second run log file count is the same - 4.
In my expectation, it should be 8.
(By the way, python logging module generates 8 files for the
same scenario if using logging.handlers.RotatingFileHandler).

Also, I have minor feature request related to rotating file naming.
I will be nice to have current active log file name as: 'file.log'.
And the others as file.log.1, file.log.2 etc
(i.e., name pattern is not applied to active log file).

Regards


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