Browse Source

AMBARI-14084 : ViewRegistry now looks for file view.log4j.properties using the view archive classloader and loads all the log4j properties in it using PropertyConfigurator. Separate log4j configuraiton files added to all core views. (Nitiraj Rathore via dipayanb)

Dipayan Bhowmick 9 years ago
parent
commit
e0bf50fdc0

+ 13 - 0
ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java

@@ -91,6 +91,7 @@ import org.apache.ambari.view.ViewDefinition;
 import org.apache.ambari.view.ViewResourceHandler;
 import org.apache.ambari.view.events.Event;
 import org.apache.ambari.view.events.Listener;
+import org.apache.log4j.PropertyConfigurator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -100,6 +101,7 @@ import javax.inject.Singleton;
 
 import java.beans.IntrospectionException;
 import java.io.File;
+import java.net.URL;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -128,6 +130,7 @@ public class ViewRegistry {
   protected static final int DEFAULT_REQUEST_CONNECT_TIMEOUT = 5000;
   protected static final int DEFAULT_REQUEST_READ_TIMEOUT    = 10000;
   private static final String VIEW_AMBARI_VERSION_REGEXP = "^((\\d+\\.)?)*(\\*|\\d+)$";
+  private static final String VIEW_LOG_FILE = "view.log4j.properties";
 
   /**
    * Thread pool
@@ -1523,6 +1526,8 @@ public class ViewRegistry {
       // extract the archive and get the class loader
       ClassLoader cl = extractor.extractViewArchive(viewDefinition, archiveFile, extractedArchiveDirFile);
 
+      configureViewLogging(viewDefinition,cl);
+
       ViewConfig viewConfig = archiveUtility.getViewConfigFromExtractedArchive(extractedArchiveDirPath,
           configuration.isViewValidationEnabled());
 
@@ -1555,6 +1560,14 @@ public class ViewRegistry {
     }
   }
 
+  private void configureViewLogging(ViewEntity viewDefinition,ClassLoader cl) {
+    URL resourceURL = cl.getResource(VIEW_LOG_FILE);
+    if( null != resourceURL ){
+      LOG.debug("setting up logging for view {} as per property file {}",viewDefinition.getName(), resourceURL);
+      PropertyConfigurator.configure(resourceURL);
+    }
+  }
+
   private void addAutoInstanceDefinition(ViewEntity viewEntity) {
     ViewConfig viewConfig = viewEntity.getConfiguration();
     String viewName = viewEntity.getViewName();

+ 1 - 0
contrib/views/capacity-scheduler/pom.xml

@@ -248,6 +248,7 @@
         <filtering>false</filtering>
         <includes>
             <include>view.xml</include>
+            <include>view.log4j.properties</include>
         </includes>
         </resource>
         <resource>

+ 9 - 0
contrib/views/capacity-scheduler/src/main/resources/view.log4j.properties

@@ -0,0 +1,9 @@
+log4j.appender.capshedView=org.apache.log4j.RollingFileAppender
+log4j.appender.capshedView.File=/var/log/ambari-server/capshed-view.log
+log4j.appender.capshedView.MaxFileSize=80MB
+log4j.appender.capshedView.MaxBackupIndex=60
+log4j.appender.capshedView.layout=org.apache.log4j.PatternLayout
+log4j.appender.capshedView.layout.ConversionPattern=%d{DATE} %5p [%t] %c{1}:%L - %m%n
+
+log4j.logger.org.apache.ambari.view.capacityscheduler=DEBUG,capshedView
+log4j.additivity.org.apache.ambari.view.capacityscheduler = false

+ 1 - 0
contrib/views/files/pom.xml

@@ -241,6 +241,7 @@
         <filtering>false</filtering>
         <includes>
           <include>view.xml</include>
+          <include>view.log4j.properties</include>
         </includes>
       </resource>
 

+ 9 - 0
contrib/views/files/src/main/resources/view.log4j.properties

@@ -0,0 +1,9 @@
+log4j.appender.filesView=org.apache.log4j.RollingFileAppender
+log4j.appender.filesView.File=/var/log/ambari-server/files-view.log
+log4j.appender.filesView.MaxFileSize=80MB
+log4j.appender.filesView.MaxBackupIndex=60
+log4j.appender.filesView.layout=org.apache.log4j.PatternLayout
+log4j.appender.filesView.layout.ConversionPattern=%d{DATE} %5p [%t] %c{1}:%L - %m%n
+
+log4j.logger.org.apache.ambari.view.filebrowser=DEBUG,filesView
+log4j.additivity.org.apache.ambari.view.filebrowser= true

+ 1 - 0
contrib/views/hive/pom.xml

@@ -336,6 +336,7 @@
         <includes>
           <include>META-INF/**/*</include>
           <include>view.xml</include>
+          <include>view.log4j.properties</include>
         </includes>
       </resource>
       <resource>

+ 9 - 0
contrib/views/hive/src/main/resources/view.log4j.properties

@@ -0,0 +1,9 @@
+log4j.appender.hiveView=org.apache.log4j.RollingFileAppender
+log4j.appender.hiveView.File=/var/log/ambari-server/hive-view.log
+log4j.appender.hiveView.MaxFileSize=80MB
+log4j.appender.hiveView.MaxBackupIndex=60
+log4j.appender.hiveView.layout=org.apache.log4j.PatternLayout
+log4j.appender.hiveView.layout.ConversionPattern=%d{DATE} %5p [%t] %c{1}:%L - %m%n
+
+log4j.logger.org.apache.ambari.view.hive=DEBUG,hiveView
+log4j.additivity.org.apache.ambari.view.hive = false

+ 1 - 0
contrib/views/jobs/pom.xml

@@ -156,6 +156,7 @@
                     <include>WEB-INF/web.xml</include>
                     <include>META-INF/**/*</include>
                     <include>view.xml</include>
+                    <include>view.log4j.properties</include>
                 </includes>
             </resource>
             <resource>

+ 10 - 0
contrib/views/jobs/src/main/resources/view.log4j.properties

@@ -0,0 +1,10 @@
+log4j.appender.jobsView=org.apache.log4j.RollingFileAppender
+log4j.appender.jobsView.File=/var/log/ambari-server/jobs-view.log
+log4j.appender.jobsView.MaxFileSize=80MB
+log4j.appender.jobsView.MaxBackupIndex=60
+log4j.appender.jobsView.layout=org.apache.log4j.PatternLayout
+log4j.appender.jobsView.layout.ConversionPattern=%d{DATE} %5p [%t] %c{1}:%L - %m%n
+
+
+log4j.logger.org.apache.ambari.view.jobs=DEBUG,jobsView
+log4j.additivity.org.apache.ambari.view.jobs=false

+ 1 - 0
contrib/views/pig/pom.xml

@@ -305,6 +305,7 @@
         <includes>
           <include>META-INF/**/*</include>
           <include>view.xml</include>
+          <include>view.log4j.properties</include>
         </includes>
       </resource>
       <resource>

+ 9 - 0
contrib/views/pig/src/main/resources/view.log4j.properties

@@ -0,0 +1,9 @@
+log4j.appender.pigView=org.apache.log4j.RollingFileAppender
+log4j.appender.pigView.File=/var/log/ambari-server/pig-view.log
+log4j.appender.pigView.MaxFileSize=80MB
+log4j.appender.pigView.MaxBackupIndex=60
+log4j.appender.pigView.layout=org.apache.log4j.PatternLayout
+log4j.appender.pigView.layout.ConversionPattern=%d{DATE} %5p [%t] %c{1}:%L - %m%n
+
+log4j.logger.org.apache.ambari.view.pig=DEBUG,pigView
+log4j.additivity.org.apache.ambari.view.pig=false

+ 1 - 0
contrib/views/slider/pom.xml

@@ -336,6 +336,7 @@
         <filtering>false</filtering>
         <includes>
           <include>view.xml</include>
+          <include>view.log4j.properties</include>
         </includes>
       </resource>
       <resource>

+ 9 - 0
contrib/views/slider/src/main/resources/view.log4j.properties

@@ -0,0 +1,9 @@
+log4j.appender.sliderView=org.apache.log4j.RollingFileAppender
+log4j.appender.sliderView.File=/var/log/ambari-server/slider-view.log
+log4j.appender.sliderView.MaxFileSize=80MB
+log4j.appender.sliderView.MaxBackupIndex=60
+log4j.appender.sliderView.layout=org.apache.log4j.PatternLayout
+log4j.appender.sliderView.layout.ConversionPattern=%d{DATE} %5p [%t] %c{1}:%L - %m%n
+
+log4j.logger.org.apache.ambari.view.slider=DEBUG,sliderView
+log4j.additivity.org.apache.ambari.view.slider=false

+ 9 - 0
contrib/views/storm/src/main/resources/view.log4j.properties

@@ -0,0 +1,9 @@
+log4j.appender.stormView=org.apache.log4j.RollingFileAppender
+log4j.appender.stormView.File=/var/log/ambari-server/storm-view.log
+log4j.appender.stormView.MaxFileSize=80MB
+log4j.appender.stormView.MaxBackupIndex=60
+log4j.appender.stormView.layout=org.apache.log4j.PatternLayout
+log4j.appender.stormView.layout.ConversionPattern=%d{DATE} %5p [%t] %c{1}:%L - %m%n
+
+log4j.logger.org.apache.ambari.storm=DEBUG,stormView
+log4j.additivity.org.apache.ambari.storm=false

+ 1 - 0
contrib/views/tez/pom.xml

@@ -145,6 +145,7 @@
           <include>WEB-INF/web.xml</include>
           <include>META-INF/**/*</include>
           <include>view.xml</include>
+          <include>view.log4j.properties</include>
         </includes>
       </resource>
       <resource>

+ 9 - 0
contrib/views/tez/src/main/resources/view.log4j.properties

@@ -0,0 +1,9 @@
+log4j.appender.tezView=org.apache.log4j.RollingFileAppender
+log4j.appender.tezView.File=/var/log/ambari-server/tez-view.log
+log4j.appender.tezView.MaxFileSize=80MB
+log4j.appender.tezView.MaxBackupIndex=60
+log4j.appender.tezView.layout=org.apache.log4j.PatternLayout
+log4j.appender.tezView.layout.ConversionPattern=%d{DATE} %5p [%t] %c{1}:%L - %m%n
+
+log4j.logger.org.apache.ambari.view.tez=DEBUG,tezView
+log4j.additivity.org.apache.ambari.view.tez=false