Tony,
And I would think that you would also want to use a different nomenclature for the names of each logger, since you don't want them controlled by package. Instead of com.acme.mypkg.myclass, perhaps something like myapp.mytask ?? That way the "users" can control logging by task instead of class or package.
Just my $0.02USD worth ... :)
--- regards --- Larry
At 03:21 PM 6/8/04, you wrote:
I would suggest then simply setting up a ThreadLocal Logger then, configured at the start of your request, that all the participants expect to be there.
On Tue, 8 Jun 2004, Tony Thompson wrote:
login()Pardon my asking but what is wrong with:
void getUser() { Logger logger = LogManager.getLogger( "org.widgets.getUser" ); }
or just
void getUser() { Logger logger = LogManager.getLogger( "org.widgets" ); }
Why should the logging in getUser() care if it has been called byor by logout()?
Please bear with me, I am trying to understand the use case.
No problem.
I don't really want getUser() to have its own logging category. What I am concerned about is the end user experience. If I am the end user and I want to see DEBUG for the login process, I shouldn't have to set DEBUG levels on more than one category. I should set DEBUG for "org.widgets.login" and see all of the debug available for the login process. Plus, getUser() would display DEBUG messages every time logout() is called which is not what I wanted either.
Now, as the server developer, I could implement getUser() like this:
void getUser( Logger logger ) { }
and just pass the logger in every time I call it. That would accomplish the same thing. But, I don't really want to mess with all of the code that calls getUser() and pass in a Logger.
So, to me, the cleanest solution would be to set a Logger for the current thread. Then getUser() can just grab the "current" logger and use that. It doesn't care because it is only part of a larger process anyway. This is an implementation detail but, you would also need a default category (maybe the root logger) to log messages to in case the caller hasn't set a logger context. Either way, getUser() relies on someone else to tell it what its logger should be.
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]
--------------------------
Larry Young
The Dalmatian Group
www.dalmatian.com
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]