(Properties properties, PigContext pigContext)
| 752 | |
| 753 | //TODO jz: log4j.properties should be used instead |
| 754 | private static void configureLog4J(Properties properties, PigContext pigContext) { |
| 755 | // TODO Add a file appender for the logs |
| 756 | // TODO Need to create a property in the properties file for it. |
| 757 | // sgroschupf, 25Feb2008: this method will be obsolete with PIG-115. |
| 758 | |
| 759 | String log4jconf = properties.getProperty(LOG4J_CONF); |
| 760 | String trueString = "true"; |
| 761 | boolean brief = trueString.equalsIgnoreCase(properties.getProperty(BRIEF)); |
| 762 | Level logLevel = Level.INFO; |
| 763 | |
| 764 | String logLevelString = properties.getProperty(DEBUG); |
| 765 | if (logLevelString != null){ |
| 766 | logLevel = Level.toLevel(logLevelString, Level.INFO); |
| 767 | } |
| 768 | |
| 769 | final Properties props = log4jConfAsProperties(log4jconf); |
| 770 | if (props.size() == 0) { |
| 771 | props.setProperty("log4j.logger.org.apache.pig", logLevel.toString()); |
| 772 | if((logLevelString = System.getProperty("pig.logfile.level")) == null){ |
| 773 | props.setProperty("log4j.rootLogger", "INFO, PIGCONSOLE"); |
| 774 | } |
| 775 | else{ |
| 776 | logLevel = Level.toLevel(logLevelString, Level.INFO); |
| 777 | props.setProperty("log4j.logger.org.apache.pig", logLevel.toString()); |
| 778 | props.setProperty("log4j.rootLogger", "INFO, PIGCONSOLE, F"); |
| 779 | props.setProperty("log4j.appender.F","org.apache.log4j.RollingFileAppender"); |
| 780 | props.setProperty("log4j.appender.F.File",properties.getProperty("pig.logfile")); |
| 781 | props.setProperty("log4j.appender.F.layout","org.apache.log4j.PatternLayout"); |
| 782 | props.setProperty("log4j.appender.F.layout.ConversionPattern", brief ? "%m%n" : "%d [%t] %-5p %c - %m%n"); |
| 783 | } |
| 784 | |
| 785 | props.setProperty("log4j.appender.PIGCONSOLE","org.apache.log4j.ConsoleAppender"); |
| 786 | props.setProperty("log4j.appender.PIGCONSOLE.target", "System.err"); |
| 787 | props.setProperty("log4j.appender.PIGCONSOLE.layout","org.apache.log4j.PatternLayout"); |
| 788 | props.setProperty("log4j.appender.PIGCONSOLE.layout.ConversionPattern", brief ? "%m%n" : "%d [%t] %-5p %c - %m%n"); |
| 789 | } |
| 790 | |
| 791 | PropertyConfigurator.configure(props); |
| 792 | logLevel = Logger.getLogger("org.apache.pig").getLevel(); |
| 793 | if (logLevel==null) { |
| 794 | logLevel = Logger.getLogger("org.apache.pig").getEffectiveLevel(); |
| 795 | } |
| 796 | Properties backendProps = pigContext.getLog4jProperties(); |
| 797 | backendProps.setProperty("log4j.logger.org.apache.pig", logLevel.toString()); |
| 798 | pigContext.setLog4jProperties(backendProps); |
| 799 | pigContext.setDefaultLogLevel(logLevel); |
| 800 | } |
| 801 | |
| 802 | @VisibleForTesting |
| 803 | static Properties log4jConfAsProperties(String log4jconf) { |
no test coverage detected