commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ted Dunning <ted.dunn...@gmail.com>
Subject Re: LogFactory.getLog()
Date Sat, 07 Aug 2010 16:36:24 GMT
This really would be nice to have.

Sent from my iPhone

On Aug 6, 2010, at 8:36 PM, "cmaj135" <cmaj135@gmail.com> wrote:

> nod
>
>
>
>
> cmaj135
> 2010-08-07
>
>
>
> 发件人: Doug Bateman
> 发送时间: 2010-08-07 10:11:35
> 收件人: Commons Developers List
> 抄送:
> 主题: LogFactory.getLog()
>
> 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


Mime
View raw message