commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebb <seb...@gmail.com>
Subject Re: LogFactory.getLog()
Date Sun, 08 Aug 2010 12:08:41 GMT
On 7 August 2010 06:00, James Carman <james@carmanconsulting.com> wrote:
> Attachments don't come through.  File a JIRA

+1 - please

>
> 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().

Huh?

I cannot find that method anywhere.

Do you perhaps mean

public StackTraceElement[] getStackTrace()

which is @since Java 1.5?

>> 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
>
>

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


Mime
View raw message