One other thing I would strongly encourage, purchase Ceki's book and read
the section about wrapping Log4j.  It is something that is encouraged,
however Ceki strongly recommends not sub-classing logger.  Use aggregation,
as he describes in his book.




-----Original Message-----
From: Shapira, Yoav [mailto:[EMAIL PROTECTED]
Sent: Friday, October 03, 2003 8:42 AM
To: Log4J Users List
Subject: RE: Adding an abstraction level



Howdy,
Not quite.  Using isEnabledFor(Level l), e.g. isDebugEnabled() around
logger.debug statements can significantly reduce logging overhead.  You
should read the log4j manual on this issue, as it contains a more
complete explanation and benchmarks.

As for your level of abstraction, which on this list we often refer to
as a log4j wrapper: chances are you're not gaining much from it, but
also not losing much in your case.  I've seen worse wrappers suggested
here, e.g. ones that do the Logger.getLogger(...) call each time --
that's terrible ;)

Yoav Shapira
Millennium ChemInformatics


>-----Original Message-----
>From: Jain, Siddharth (ODC - Satyam) [mailto:[EMAIL PROTECTED]
>Sent: Friday, October 03, 2003 2:23 AM
>To: Log4J Users List
>Subject: RE: Adding an abstraction level
>
>Hi Jitesh,
>
>I really do not think this would help you, since there is a property
known
>as "threshold" in log4j, which specifies the minimum logging level,
>thereby,
>if you want that in certain deployment scenarios, or for certain
appenders,
>messages should be logged above a certain level, then just specify this
>property to whatever level u want, because internally, log4j checks for
the
>the level being enabled or not.
>I hope this helps you out.
>
>Cheers
>Siddharth
>
>
> -----Original Message-----
>From: Jitesh_Arya [mailto:[EMAIL PROTECTED]
>Sent: Friday, October 03, 2003 11:49 AM
>To: Log4J Users List
>Subject: Adding an abstraction level
>
>
>
>
>Hi, this is my first mail to this mailing list and it's not been long
since
>I subscribed to it. So, please forgive if I sound really stupid putting
>forth my question(s).
>What we have done is we have added another level of abstraction between
the
>application (some web app) developer and the log4j. We have written
another
>class that imports log4j and other classes that are required for
logging
>and
>written our own functions without any added functionality. That is, my
>debug
>will in turn
>call log4j's debug method. Another thing that has been added is: the
>isDebugEnabled () check before debug () of log4j is called. And
similarly,
>isEnabledfor(level)
>for other levels. Now, my questions:
>1)      Is this added level of abstraction advisable?
>2)      Does the check before the call to log4j method serve any
purpose
>(here in my case) in reducing the cost? This (in normal cases, not
here)
>does prevent the cost of parameter construction when implemented in
>application directly (this I understand). But here, the parameters will
be
>constructed, (so no savings on that side) when call is made to the
debug ()
>or any other method that we have implemented. So, you see anything here
>(diamond or just coal)?
>
>A heavy lot of thanks in ADVANCE:-)
>
>Regards,
>Jitesh



This e-mail, including any attachments, is a confidential business
communication, and may contain information that is confidential, proprietary
and/or privileged.  This e-mail is intended only for the individual(s) to
whom it is addressed, and may not be saved, copied, printed, disclosed or
used by anyone else.  If you are not the(an) intended recipient, please
immediately delete this e-mail from your computer system and notify the
sender.  Thank you.


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

-------------------------------------------------------------------------------
This message and any included attachments are from Siemens Medical Solutions 
USA, Inc. and are intended only for the addressee(s).  
The information contained herein may include trade secrets or privileged or 
otherwise confidential information.  Unauthorized review, forwarding, printing, 
copying, distributing, or using such information is strictly prohibited and may 
be unlawful.  If you received this message in error, or have reason to believe 
you are not authorized to receive it, please promptly delete this message and 
notify the sender by e-mail with a copy to [EMAIL PROTECTED]  Thank you

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

Reply via email to