Tony,

Can you describe the concrete use case? Forget about the actual logger objects for a second. Do you want logging from methodA+utilityMethod and methodB+utilityMethod to go to different places? Or do you basically want
utilityMethod to inherit its logging context from some parent object?



At 03:11 PM 6/8/2004, Tony Thompson wrote:
That is not really what I want.  Let me expand my example a bit:

void methodA() {
   Logger logger = LogManager.getLogger( "methodA" );
   utilityMethod( ... );
   ...
}

void methodB() {
   Logger logger = LogManager.getLogger( "methodB" );
   utilityMethod( ... );
   ...
}

void utilityMethod() {
    // Which logger do I use?
}

The NDC only gives me a way to put context sensitive information in the
logging statements.  What I want is a way to get a Logger based on some
type of logging context.  In my example, I want fine grained control of
my logging categories but, utilityMethod() may be called from different
places.  Here is what I would like to see:

void methodA() {
   Logger logger = LogManager.pushLoggingContext( "methodA" );
   utilityMethod( ... );
   ...
   LogManager.popLoggingContext();
}

void methodB() {
   Logger logger = LogManager.pushLoggingContext( "methodB" );
   utilityMethod( ... );
   ...
   LogManager.popLoggingContext();
}

void utilityMethod() {
    // Use the current logger.
    Logger logger = LogManager.getLoggingContext();
}

This, of course, could go on further too.  utilityMethod() could change
the current Logger before it calls some other method, etc.

Make sense?
Tony


-- Ceki G�lc�

For log4j documentation consider "The complete log4j manual"
ISBN: 2970036908 http://www.qos.ch/shop/products/clm_t.jsp




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to