hadoop-pig-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eric Baldeschwieler <eri...@yahoo-inc.com>
Subject Re: Logging
Date Mon, 28 Jan 2008 17:56:02 GMT
Why not java native logging.  It has come a long way.

We keep working around the limitations of commons logging in Hadoop.   
We break abstraction and use log4j commands to change logging levels  
at run-time and such.

Commons logging also imports assumptions about configuration, right?   
IE a separate  XML file?



On Jan 28, 2008, at 12:45 AM, Benjamin Francisoud wrote:

> Ted Dunning a écrit :
>> You may also want to consider SLF4J to simplify the dependencies  
>> even more.
>>
>>
> Yes never used it before could be the opportunity to learn it :)
>
> Is it what you'd like to use ? the rest of the team also ?
> Just don't want to make a patch if nobody is going to use it ;)
>
>
>> On 1/25/08 8:38 AM, "Benjamin Francisoud"  
>> <benjamin.francisoud@joost.com>
>> wrote:
>>
>>
>>> Hi,
>>>
>>> While reading the ProposedRoadMap [1], I found the "Logging" item
>>> important and easy to fix ;)
>>>
>>> I'd like to provide a patch for this but the "Current Situation"  
>>> chapter
>>> and what I've seen in the code [2] seems to say that you guys  
>>> should use
>>> log4j.
>>> Using log4j is perfeclty fine (I used it on several project since  
>>> 2002)
>>> but making all pig class actually depend on the log4j api would  
>>> be a bad
>>> idea :(
>>> Without any extra effort, you can use the "wonderful" commons  
>>> logging
>>> abstraction api ;)
>>>
>>> Advantages you would get by using commons logging api:
>>> - Making it possible to stwich from log4j, simple log or any  
>>> logger of
>>> your choice implementing the common logging api.
>>> - Allow pig users to use the logging system of there choice if, for
>>> example, the developped there own internal commons logging impl  
>>> (not my
>>> case currently but worked for a company where they did just that)
>>> - You wouldn't need to add another layer of indirection in
>>> PigLogger.java, reducing amount of code and maintenance
>>> - If you decide to change the logging impl the java classes will not
>>> need to by modify
>>>
>>> You simply have to add this line of code to you classes:
>>>
>>> private Log log = LogFactory.getLog(Foo.class);
>>>
>>>
>>> if log4j jar is in the classpath  and it finds a log4j.properties it
>>> will use log4j at runtime...
>>> It a configuration example, log4j can be configured in many
>>> non-intrusive ways...
>>>
>>> You can read the reason why I'm not using static in this example at
>>> StaticLog wiki page [3]
>>>
>>> I created a page to hold this dicussion result on the wiki [4]
>>>
>>> [1] http://wiki.apache.org/pig/ProposedRoadMap
>>> [2] http://svn.apache.org/repos/asf/incubator/pig/trunk/src/org/ 
>>> apache/pig/impl/ut
>>> il/PigLogger.java
>>> [3] http://wiki.apache.org/jakarta-commons/Logging/StaticLog
>>> [4] http://wiki.apache.org/pig/LoggingPolicy
>>>
>>>
>>> cheers
>>> --
>>> Benjamin Francisoud
>>>
>>
>>
>


Mime
View raw message