You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ga...@apache.org on 2007/12/08 01:41:57 UTC

svn commit: r602286 - in /incubator/pig/trunk: CHANGES.txt src/org/apache/pig/Main.java src/org/apache/pig/impl/PigContext.java

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