Boost logo

Boost :

From: Gennadiy Rozental (gennadiy.rozental_at_[hidden])
Date: 2005-04-30 13:28:34


>> a.cpp:14: Print result of f():
>> b.cpp:75: Enter f()
>> b.cpp:95: Exit f()
>> a.cpp:14: 1234
>
> The proposed implementation yields this (modulo any prefixes):
>
> Enter f()
> Exit f()
> Print result of f(): 1234
>
> Because each message is built up in a temporary stream and then fired
> off to the logger in its entirety.
>
> Gennadiy: to do what you suggest would seem to me to require (a) no
> buffering and (b) an interface which is likely not thread-safe. Or am
> I missing something.

Sorry. I am not that deep ;)) First of all I am not familiar with detail of
this submission and second I just talking from user prospective. And from
that prospective what proposed implementation yields may not be ucceptable
cause it break order of events.

I wonder what it's going to pring in more complicated cases:

BOOST_LOG(..) << "Print result of f(): " << f() << " and g()" << g();

void f() {
BOOST_LOG(..) << "Enter f()";

BOOST_LOG(..) << "f() inside uses m(): " << m();

BOOST_LOG(..) << "Exit f()";
}

void g() {
BOOST_LOG(..) << "Enter g()";

BOOST_LOG(..) << "g() inside uses m(): " << m();

BOOST_LOG(..) << "Exit g()";
}

Gennadiy

P.S. Could you explain a bit more how cashing and threading are involved
here


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