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/util/PigLogger.java
[3] http://wiki.apache.org/jakarta-commons/Logging/StaticLog
[4] http://wiki.apache.org/pig/LoggingPolicy


cheers
--
Benjamin Francisoud

Reply via email to