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