Author: gates
Date: Fri Dec  7 16:41:57 2007
New Revision: 602286

URL: http://svn.apache.org/viewvc?rev=602286&view=rev
Log:
PIG-12: Added time stamps to log4j messages


Modified:
    incubator/pig/trunk/CHANGES.txt
    incubator/pig/trunk/src/org/apache/pig/Main.java
    incubator/pig/trunk/src/org/apache/pig/impl/PigContext.java

Modified: incubator/pig/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/incubator/pig/trunk/CHANGES.txt?rev=602286&r1=602285&r2=602286&view=diff
==============================================================================
--- incubator/pig/trunk/CHANGES.txt (original)
+++ incubator/pig/trunk/CHANGES.txt Fri Dec  7 16:41:57 2007
@@ -48,3 +48,5 @@
     instead of Tuples, causing Reducer to crash in some cases.
 
     PIG-47: Added methods to DataMap to provide access to its content
+
+       PIG-12: Added time stamps to log4j messages (phunt via gates).

Modified: incubator/pig/trunk/src/org/apache/pig/Main.java
URL: 
http://svn.apache.org/viewvc/incubator/pig/trunk/src/org/apache/pig/Main.java?rev=602286&r1=602285&r2=602286&view=diff
==============================================================================
--- incubator/pig/trunk/src/org/apache/pig/Main.java (original)
+++ incubator/pig/trunk/src/org/apache/pig/Main.java Fri Dec  7 16:41:57 2007
@@ -25,10 +25,12 @@
 
 import org.apache.hadoop.util.HadoopExe;
 
+import org.apache.log4j.BasicConfigurator;
 import org.apache.log4j.Logger;
 import org.apache.log4j.Level;
 import org.apache.log4j.ConsoleAppender;
 import org.apache.log4j.PatternLayout;
+import org.apache.log4j.PropertyConfigurator;
 import org.apache.pig.PigServer.ExecType;
 import org.apache.pig.impl.PigContext;
 import org.apache.pig.impl.logicalLayer.LogicalPlanBuilder;
@@ -64,11 +66,15 @@
                int port = 0;
                String file = null;
                Level logLevel = Level.INFO;
+        boolean brief = false;
+        String log4jconf = null;
                boolean verbose = false;
 
                CmdLineParser opts = new CmdLineParser(args);
                // Don't use -l, --latest, -c, --cluster, -cp, -classpath, -D 
as these
                // are masked by the startup perl script.
+        opts.registerOpt('4', "log4jconf", 
CmdLineParser.ValueExpected.REQUIRED);
+        opts.registerOpt('b', "brief", 
CmdLineParser.ValueExpected.NOT_ACCEPTED);
                opts.registerOpt('c', "cluster", 
CmdLineParser.ValueExpected.REQUIRED);
                opts.registerOpt('d', "debug", 
CmdLineParser.ValueExpected.REQUIRED);
                opts.registerOpt('e', "execute", 
CmdLineParser.ValueExpected.NOT_ACCEPTED);
@@ -82,6 +88,14 @@
                char opt;
                while ((opt = opts.getNextOpt()) != CmdLineParser.EndOfOpts) {
                        switch (opt) {
+            case '4':
+                log4jconf = opts.getValStr();
+                break;
+
+            case 'b':
+                brief = true;
+                break;
+
                        case 'c': {
                                // Needed away to specify the cluster to run 
the MR job on
                                // Bug 831708 - fixed
@@ -154,14 +168,35 @@
 
                LogicalPlanBuilder.classloader = pigContext.createCl(null);
 
-               // Set the log level, and set up appenders
-               Logger log = pigContext.getLogger();
-               log.setLevel(logLevel);
-               ConsoleAppender screen = new ConsoleAppender(new 
PatternLayout());
-               if (verbose) screen.setThreshold(logLevel);
-               else screen.setThreshold(Level.INFO);
-               screen.setTarget(ConsoleAppender.SYSTEM_ERR);
-               log.addAppender(screen);
+               if (log4jconf != null) {
+            PropertyConfigurator.configure(log4jconf);
+               } else if (!brief) {
+                   // non-brief logging - timestamps
+                   Properties props = new Properties();
+                   props.setProperty("log4j.rootLogger", "INFO, PIGCONSOLE");
+            props.setProperty("log4j.appender.PIGCONSOLE",
+                              "org.apache.log4j.ConsoleAppender");
+            props.setProperty("log4j.appender.PIGCONSOLE.layout",
+                              "org.apache.log4j.PatternLayout");
+            
props.setProperty("log4j.appender.PIGCONSOLE.layout.ConversionPattern",
+                              "%d [%t] %-5p %c - %m%n");
+           PropertyConfigurator.configure(props);
+            // Set the log level/threshold
+            Logger.getRootLogger().setLevel(verbose ? Level.ALL : logLevel);
+               } else {
+                   // brief logging - no timestamps
+            Properties props = new Properties();
+            props.setProperty("log4j.rootLogger", "INFO, PIGCONSOLE");
+            props.setProperty("log4j.appender.PIGCONSOLE",
+                              "org.apache.log4j.ConsoleAppender");
+            props.setProperty("log4j.appender.PIGCONSOLE.layout",
+                              "org.apache.log4j.PatternLayout");
+            
props.setProperty("log4j.appender.PIGCONSOLE.layout.ConversionPattern",
+                              "%m%n");
+            PropertyConfigurator.configure(props);
+            // Set the log level/threshold
+            Logger.getRootLogger().setLevel(verbose ? Level.ALL : logLevel);
+               }
 
                // TODO Add a file appender for the logs
                // TODO Need to create a property in the properties file for it.
@@ -246,6 +281,8 @@
        System.err.println("       Pig [options] -e[xecute] cmd [cmd ...] : Run 
cmd(s).");
        System.err.println("       Pig [options] [-f[ile]] file : Run cmds 
found in file.");
        System.err.println("  options include:");
+    System.err.println("    -4, -log4jconf log4j configuration file, overrides 
log conf");
+    System.err.println("    -b, -brief brief logging (no timestamps)");
        System.err.println("    -c, -cluster clustername, kryptonite is 
default");
        System.err.println("    -d, -debug debug level, INFO is default");
        System.err.println("    -h, -help display this message");

Modified: incubator/pig/trunk/src/org/apache/pig/impl/PigContext.java
URL: 
http://svn.apache.org/viewvc/incubator/pig/trunk/src/org/apache/pig/impl/PigContext.java?rev=602286&r1=602285&r2=602286&view=diff
==============================================================================
--- incubator/pig/trunk/src/org/apache/pig/impl/PigContext.java (original)
+++ incubator/pig/trunk/src/org/apache/pig/impl/PigContext.java Fri Dec  7 
16:41:57 2007
@@ -111,7 +111,6 @@
                this.execType = execType;
                
                mLogger = Logger.getLogger("org.apache.pig");
-               mLogger.setAdditivity(false);
 
        initProperties();
        


Reply via email to