What I think you want to use either the Nested Diagnostic Context (NDC) or the Mapped Diagnostic Context that is part of log4j and then have your appenders output them.

The NDC is a stack that you can push things on as your code goes down the call stack. The MDC is useful as a ThreadLocal map that is often used to track such things as the User/IP etc of the user making the current request.

Probably best to see this JavaDoc:

MDC: http://logging.apache.org/log4j/docs/api/org/apache/log4j/MDC.html
NDC: http://logging.apache.org/log4j/docs/api/org/apache/log4j/NDC.html

cheers,

Paul Smith

On Mon, 7 Jun 2004, Tony Thompson wrote:

Is there any way currently to set a logging "context" for a thread?  For
example, if I have a utility method that I call from two other methods,
I don't want to create a new category just for that utility method.

void methodA() {
   utilityMethod( ... );
   ...
}

void methodB() {
   utilityMethod( ... );
   ...
}

When utilityMethod() is called from methodA(), I want it to use the
logging category established for methodA().  When it is called from
methodB(), I want it to use the category for methodB().

I would prefer not to pass in the Logger when I call utilityMethod()
because I want to do this in existing code and it would take a bunch of
extra work and be unnecessarily ugly.  What would be ideal would be to
have the LogManager keep a ThreadLocal with the current logging
"context" (probably a stack).  As methods get called, they can push a
new logging context onto the stack, if they wish or simply let the
current one be used for the current thread of execution.

If log4j can't do this for me, would it make sense for log4j to offer
this type of functionality?

Thanks for any help.
Tony

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



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



Reply via email to