commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James Carman <ja...@carmanconsulting.com>
Subject Re: LogFactory.getLog()
Date Sat, 07 Aug 2010 05:00:08 GMT
Attachments don't come through.  File a JIRA

On Fri, Aug 6, 2010 at 10:11 PM, Doug Bateman <doug@dougbateman.net> wrote:
> Dear Commons Developers,
>
> Here's a suggestion for the commons-logging package...
>
> Presently, in Apache Commons, the most common way to get a logger is to do
> something like:
>
> public class MyClass {
>     private static Log log = LogFactory.getLog(MyClass.class);
> }
>
> Notice how MyClass.class (or alternatively a string name) is passed as a
> parameter.  The annoying aspect of this is that sometimes the class name
> doesn't get updated when doing copy/paste operations.  A desirable
> alternative might be:
>
> public class MyClass {
>     private static Log log = LogFactory.getLog(); //class name inferred from
> call stack
> }
>
>
> With such an approach there are two possible concerns I can foresee:
>
> Call stack inspection isn't terribly fast.  However since Loggers are
> generally initialized only once, when the class is first loaded, performance
> isn't likely to be a major problem.
> Commons-logging is Java 1.1 compatible.  Thus care must be taken to ensure
> compatibility isn't broken.
> Commons-logging doesn't depend on commons-lang, and thus the utilities in
> commons-lang cannot be used.
>
> In Java 1.4, the call stack is easily obtained using Thread.getCallStack().
> Prior to Java 1.4, the only way to obtain the call stack is to inspect the
> stack trace of an exception.
>
>
> I've attached to this email a proof of concept implementation.  It tests
> successfully in Java 1.0+ and Java 1.4+.  In order to ensure the
> implementation doesn't break for Java 1.0, I used reflection to invoke the
> Java 1.4 APIs when they are available.
>
> Cheers,
> Doug
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>

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


Mime
View raw message