Thanks for the input, Curt.

I can see why the library is hiding the implementation of the Stack (more accurately, the DiagnosticContext).
I might suggest that cloneStack() and inheritStack() use an opaque data type defined specifically for
hiding this information. That would prevent people from messing with or depending on the Stack or the
Diagnostic Context, but still give the ability to save this thing.

Thanks again,
G. Wade

Curt Arnold <>

02/04/2005 05:31 PM
Please respond to "Log4CXX User"

        To:        Log4CXX User <>
        Subject:        Re: NDC Stack problem with threads

Looks like you might have to resort to header re-engineering to use
them in with 0.9.7.  Looks pretty inaccessible to me without tweaking
the header file.  There are no unit tests for the behavior in the test
suite, I have no clue to their usability.  Use at your own risk.

In the current CVS HEAD, the thread local stuff hasn't been
reimplemented using APR, so the NDC is unusable at the moment.  I
expect that I will change the signatures for cloneStack and inherit.  
Nice to know that they were not reachable in 0.9.7.   I will bring over
log4j unit tests, so at least you will be able to call them without
tweaking the header file.

This communication is for informational purposes only. It is not intended
as an offer or solicitation for the purchase or sale of any financial
instrument or as an official confirmation of any transaction. All market prices,
data and other information are not warranted as to completeness or accuracy and
are subject to change without notice. Any comments or statements made herein 
do not necessarily reflect those of JPMorgan Chase & Co., its subsidiaries 
and affiliates