logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave King <dave.k...@prefersoft.com>
Subject The NDC and Multiple entry points
Date Mon, 26 Mar 2001 21:11:51 GMT
My guess is this a dev list issue.

I'm working on a CORBA app where we have remote methods like say

public class SomeCorbaImpl extends some FrameWorkClass implements
SomeCorbaOperations{
	public void someMethod(){
		NDC.push(getSession().getUserId());	
		//some code with logging
		someOtherMethod()
		//some more code with logging
		NDC.pop();
	}
	
	public void someOtherMethod(){
		NDC.push(getSession().getUserId());
		//some code with logging
		NDC.pop();
	}
}

The problem is the client code can call someMethod() or someOtherMethod
directly.  If the client calls
someMethod() the ndc get set to something like
davek davek
in someOtherMethod

I know I can check the depth of the NDC in someOtherMethod  like this

	public void someOtherMethod(){
		if(NDC.getDepth()==0){
			NDC.push(getSession().getUserId());
		}
		//some code with logging
		NDC.pop();
	}

but what to do with the pop?  I could store a flag but that is getting ugly
quick.

One solution I cam up with is to push an empty NDC on to the stack so that a
util class could work like this

public class SessionNDC{
	public static  void push(Session s){
		if(NDC.getDepth()==0){
			NDC.push(s.getUserId())
		}
		else{
			NDC.push("");
		}
	}
	
	public static void pop(){
		NDC.pop();
	}
}	
	
And this works except that the NDC places a space between each NDC level
even if the NDC is "", not a huge deal but a pain.

Cekie and I talked (emailed?) about this back before Christmas but didn't
come to a conclusion.  I've been off site since then.

I'm wondering if anyone has come up with another solution or is it worth
modifying the NDC code to removed the extra
spaces?

-Peace
Dave

PS I can't help but be amazed at the progress in three short months.

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-dev-help@jakarta.apache.org


Mime
View raw message