You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by mg...@apache.org on 2017/01/11 11:17:59 UTC

ambari git commit: AMBARI-19330 addendum LogSearch upgrade support 2.4 -> 2.5 (mgergely)

Repository: ambari
Updated Branches:
  refs/heads/branch-2.5 59b50bac2 -> d15c61095


AMBARI-19330 addendum LogSearch upgrade support 2.4 -> 2.5 (mgergely)

Change-Id: Ibade148359f9a91db8ba3a6fc0c30277be261918


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/d15c6109
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/d15c6109
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/d15c6109

Branch: refs/heads/branch-2.5
Commit: d15c6109539a451fbb1e92b8cdbfba15b6abd404
Parents: 59b50ba
Author: Miklos Gergely <mg...@hortonworks.com>
Authored: Wed Jan 11 12:15:37 2017 +0100
Committer: Miklos Gergely <mg...@hortonworks.com>
Committed: Wed Jan 11 12:17:50 2017 +0100

----------------------------------------------------------------------
 .../server/upgrade/SchemaUpgradeUtil.java       |   5 +-
 .../server/upgrade/UpgradeCatalog250.java       |  77 ++++++++-
 .../0.5.0/configuration/logfeeder-log4j.xml     |   8 +-
 .../0.5.0/configuration/logsearch-log4j.xml     |  16 +-
 .../server/upgrade/UpgradeCatalog250Test.java   | 171 ++++++++++++++++++-
 5 files changed, 255 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/d15c6109/ambari-server/src/main/java/org/apache/ambari/server/upgrade/SchemaUpgradeUtil.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/SchemaUpgradeUtil.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/SchemaUpgradeUtil.java
index 999004c..f382ca9 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/SchemaUpgradeUtil.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/SchemaUpgradeUtil.java
@@ -65,8 +65,9 @@ public class SchemaUpgradeUtil {
     if (m.find()) {
       propertyValue = m.group(1);
       
-      String toReplace = propertyPattern.replace("(\\w+)", propertyValue);
-      String replaceWith = propertyPattern.replace("(\\w+)", "{{" + variableName + "}}");
+      String unescapedPattern = propertyPattern.replace("\\{", "{");
+      String toReplace = unescapedPattern.replace("(\\w+)", propertyValue);
+      String replaceWith = unescapedPattern.replace("(\\w+)", "{{" + variableName + "}}");
       content = content.replace(toReplace, replaceWith);
     }
     newProperties.put(propertyName, propertyValue);

http://git-wip-us.apache.org/repos/asf/ambari/blob/d15c6109/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java
index 172cbd4..cb509cd 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java
@@ -656,8 +656,38 @@ public class UpgradeCatalog250 extends AbstractUpgradeCatalog {
             updateConfigurationPropertiesForCluster(cluster, "logsearch-env", newProperties, removeProperties, true, true);
           }
           
+          Config logfeederLog4jProperties = cluster.getDesiredConfigByType("logfeeder-log4j");
+          if (logfeederLog4jProperties != null) {
+            Map<String, String> newProperties = new HashMap<>();
+            
+            String content = logfeederLog4jProperties.getProperties().get("content");
+            content = SchemaUpgradeUtil.extractProperty(content, "logfeeder_log_maxfilesize", "logfeeder_log_maxfilesize",
+                "    <param name=\"file\" value=\"\\{\\{logfeeder_log_dir}}/logfeeder.log\"/>\n" +
+                "    <param name=\"append\" value=\"true\"/>\n" +
+                "    <param name=\"maxFileSize\" value=\"(\\w+)MB\"/>", "10", newProperties);
+            content = SchemaUpgradeUtil.extractProperty(content, "logfeeder_log_maxbackupindex", "logfeeder_log_maxbackupindex",
+                "    <param name=\"file\" value=\"\\{\\{logfeeder_log_dir}}/logfeeder.log\"/>\n" +
+                "    <param name=\"append\" value=\"true\"/>\n" +
+                "    <param name=\"maxFileSize\" value=\"\\{\\{logfeeder_log_maxfilesize}}MB\"/>\n" +
+                "    <param name=\"maxBackupIndex\" value=\"(\\w+)\"/>", "10", newProperties);
+            content = SchemaUpgradeUtil.extractProperty(content, "logfeeder_json_log_maxfilesize", "logfeeder_json_log_maxfilesize",
+                "    <param name=\"file\" value=\"\\{\\{logfeeder_log_dir}}/logsearch-logfeeder.json\" />\n" +
+                "    <param name=\"append\" value=\"true\" />\n" +
+                "    <param name=\"maxFileSize\" value=\"(\\w+)MB\" />", "10", newProperties);
+            content = SchemaUpgradeUtil.extractProperty(content, "logfeeder_json_log_maxbackupindex", "logfeeder_json_log_maxbackupindex",
+                "    <param name=\"file\" value=\"\\{\\{logfeeder_log_dir}}/logsearch-logfeeder.json\" />\n" +
+                "    <param name=\"append\" value=\"true\" />\n" +
+                "    <param name=\"maxFileSize\" value=\"\\{\\{logfeeder_json_log_maxfilesize}}MB\" />\n" +
+                "    <param name=\"maxBackupIndex\" value=\"(\\w+)\" />", "10", newProperties);
+            
+            newProperties.put("content", content);
+            updateConfigurationPropertiesForCluster(cluster, "logfeeder-log4j", newProperties, true, true);
+          }
+          
           Config logsearchLog4jProperties = cluster.getDesiredConfigByType("logsearch-log4j");
           if (logsearchLog4jProperties != null) {
+            Map<String, String> newProperties = new HashMap<>();
+            
             String content = logsearchLog4jProperties.getProperties().get("content");
             if (content.contains("{{logsearch_log_dir}}/logsearch.err")) {
               content = content.replace("{{logsearch_log_dir}}/logsearch.err", "{{logsearch_log_dir}}/logsearch.log");
@@ -665,8 +695,51 @@ public class UpgradeCatalog250 extends AbstractUpgradeCatalog {
             if (content.contains("<priority value=\"warn\"/>")) {
               content = content.replace("<priority value=\"warn\"/>", "<priority value=\"info\"/>");
             }
+            
+            content = SchemaUpgradeUtil.extractProperty(content, "logsearch_log_maxfilesize", "logsearch_log_maxfilesize",
+                "    <param name=\"file\" value=\"\\{\\{logsearch_log_dir}}/logsearch.log\" />\n" +
+                "    <param name=\"Threshold\" value=\"info\" />\n" +
+                "    <param name=\"append\" value=\"true\" />\n" +
+                "    <param name=\"maxFileSize\" value=\"(\\w+)MB\" />\n", "10", newProperties);
+            content = SchemaUpgradeUtil.extractProperty(content, "logsearch_log_maxbackupindex", "logsearch_log_maxbackupindex",
+                "    <param name=\"file\" value=\"\\{\\{logsearch_log_dir}}/logsearch.log\" />\n" +
+                "    <param name=\"Threshold\" value=\"info\" />\n" +
+                "    <param name=\"append\" value=\"true\" />\n" +
+                "    <param name=\"maxFileSize\" value=\"\\{\\{logsearch_log_maxfilesize}}MB\" />\n" +
+                "    <param name=\"maxBackupIndex\" value=\"(\\w+)\" />\n", "10", newProperties);
+            content = SchemaUpgradeUtil.extractProperty(content, "logsearch_json_log_maxfilesize", "logsearch_json_log_maxfilesize",
+                "    <param name=\"file\" value=\"\\{\\{logsearch_log_dir}}/logsearch.json\"/>\n" +
+                "    <param name=\"append\" value=\"true\"/>\n" +
+                "    <param name=\"maxFileSize\" value=\"(\\w+)MB\"/>\n", "10", newProperties);
+            content = SchemaUpgradeUtil.extractProperty(content, "logsearch_json_log_maxbackupindex", "logsearch_json_log_maxbackupindex",
+                "    <param name=\"file\" value=\"\\{\\{logsearch_log_dir}}/logsearch.json\"/>\n" +
+                "    <param name=\"append\" value=\"true\"/>\n" +
+                "    <param name=\"maxFileSize\" value=\"\\{\\{logsearch_json_log_maxfilesize}}MB\"/>\n" +
+                "    <param name=\"maxBackupIndex\" value=\"(\\w+)\"/>\n", "10", newProperties);
+            content = SchemaUpgradeUtil.extractProperty(content, "logsearch_audit_log_maxfilesize", "logsearch_audit_log_maxfilesize",
+                "    <param name=\"file\" value=\"\\{\\{logsearch_log_dir}}/logsearch-audit.json\"/>\n" +
+                "    <param name=\"append\" value=\"true\"/>\n" +
+                "    <param name=\"maxFileSize\" value=\"(\\w+)MB\"/>\n", "10", newProperties);
+            content = SchemaUpgradeUtil.extractProperty(content, "logsearch_audit_log_maxbackupindex", "logsearch_audit_log_maxbackupindex",
+                "    <param name=\"file\" value=\"\\{\\{logsearch_log_dir}}/logsearch-audit.json\"/>\n" +
+                "    <param name=\"append\" value=\"true\"/>\n" +
+                "    <param name=\"maxFileSize\" value=\"\\{\\{logsearch_audit_log_maxfilesize}}MB\"/>\n" +
+                "    <param name=\"maxBackupIndex\" value=\"(\\w+)\"/>\n", "10", newProperties);
+            content = SchemaUpgradeUtil.extractProperty(content, "logsearch_perf_log_maxfilesize", "logsearch_perf_log_maxfilesize",
+                "    <param name=\"file\" value=\"\\{\\{logsearch_log_dir}}/logsearch-performance.json\"/>\n" +
+                "    <param name=\"Threshold\" value=\"info\"/>\n" +
+                "    <param name=\"append\" value=\"true\"/>\n" +
+                "    <param name=\"maxFileSize\" value=\"(\\w+)MB\"/>\n", "10", newProperties);
+            content = SchemaUpgradeUtil.extractProperty(content, "logsearch_perf_log_maxbackupindex", "logsearch_perf_log_maxbackupindex",
+                "    <param name=\"file\" value=\"\\{\\{logsearch_log_dir}}/logsearch-performance.json\"/>\n" +
+                "    <param name=\"Threshold\" value=\"info\"/>\n" +
+                "    <param name=\"append\" value=\"true\"/>\n" +
+                "    <param name=\"maxFileSize\" value=\"\\{\\{logsearch_perf_log_maxfilesize}}MB\"/>\n" +
+                "    <param name=\"maxBackupIndex\" value=\"(\\w+)\"/>\n", "10", newProperties);
+            
+            newProperties.put("content", content);
             if (!content.equals(logsearchLog4jProperties.getProperties().get("content"))) {
-              updateConfigurationPropertiesForCluster(cluster, "logsearch-log4j", Collections.singletonMap("content", content), true, true);
+              updateConfigurationPropertiesForCluster(cluster, "logsearch-log4j", newProperties, true, true);
             }
           }
         }
@@ -675,7 +748,7 @@ public class UpgradeCatalog250 extends AbstractUpgradeCatalog {
   }
   
   /**
-   * Updates Log Search configs.
+   * Updates Ambari Infra configs.
    *
    * @throws AmbariException
    */

http://git-wip-us.apache.org/repos/asf/ambari/blob/d15c6109/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-log4j.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-log4j.xml b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-log4j.xml
index 1843e75..33749ff 100644
--- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-log4j.xml
+++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-log4j.xml
@@ -29,7 +29,7 @@
     <value-attributes>
       <unit>MB</unit>
     </value-attributes>
-    <on-ambari-upgrade add="false"/>
+    <on-ambari-upgrade add="true"/>
   </property>
   <property>
     <name>logfeeder_log_maxbackupindex</name>
@@ -40,7 +40,7 @@
       <type>int</type>
       <minimum>0</minimum>
     </value-attributes>
-    <on-ambari-upgrade add="false"/>
+    <on-ambari-upgrade add="true"/>
   </property>
   <property>
     <name>logfeeder_json_log_maxfilesize</name>
@@ -50,7 +50,7 @@
     <value-attributes>
       <unit>MB</unit>
     </value-attributes>
-    <on-ambari-upgrade add="false"/>
+    <on-ambari-upgrade add="true"/>
   </property>
   <property>
     <name>logfeeder_json_log_maxbackupindex</name>
@@ -61,7 +61,7 @@
       <type>int</type>
       <minimum>0</minimum>
     </value-attributes>
-    <on-ambari-upgrade add="false"/>
+    <on-ambari-upgrade add="true"/>
   </property>
   <property>
     <name>content</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/d15c6109/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-log4j.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-log4j.xml b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-log4j.xml
index 729eba6..a845741 100644
--- a/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-log4j.xml
+++ b/ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logsearch-log4j.xml
@@ -30,7 +30,7 @@
     <value-attributes>
       <unit>MB</unit>
     </value-attributes>
-    <on-ambari-upgrade add="false"/>
+    <on-ambari-upgrade add="true"/>
   </property>
   <property>
     <name>logsearch_log_maxbackupindex</name>
@@ -41,7 +41,7 @@
       <type>int</type>
       <minimum>0</minimum>
     </value-attributes>
-    <on-ambari-upgrade add="false"/>
+    <on-ambari-upgrade add="true"/>
   </property>
   <property>
     <name>logsearch_json_log_maxfilesize</name>
@@ -51,7 +51,7 @@
     <value-attributes>
       <unit>MB</unit>
     </value-attributes>
-    <on-ambari-upgrade add="false"/>
+    <on-ambari-upgrade add="true"/>
   </property>
   <property>
     <name>logsearch_json_log_maxbackupindex</name>
@@ -62,7 +62,7 @@
       <type>int</type>
       <minimum>0</minimum>
     </value-attributes>
-    <on-ambari-upgrade add="false"/>
+    <on-ambari-upgrade add="true"/>
   </property>
   <property>
     <name>logsearch_audit_log_maxfilesize</name>
@@ -72,7 +72,7 @@
     <value-attributes>
       <unit>MB</unit>
     </value-attributes>
-    <on-ambari-upgrade add="false"/>
+    <on-ambari-upgrade add="true"/>
   </property>
   <property>
     <name>logsearch_audit_log_maxbackupindex</name>
@@ -83,7 +83,7 @@
       <type>int</type>
       <minimum>0</minimum>
     </value-attributes>
-    <on-ambari-upgrade add="false"/>
+    <on-ambari-upgrade add="true"/>
   </property>
   <property>
     <name>logsearch_perf_log_maxfilesize</name>
@@ -93,7 +93,7 @@
     <value-attributes>
       <unit>MB</unit>
     </value-attributes>
-    <on-ambari-upgrade add="false"/>
+    <on-ambari-upgrade add="true"/>
   </property>
   <property>
     <name>logsearch_perf_log_maxbackupindex</name>
@@ -104,7 +104,7 @@
       <type>int</type>
       <minimum>0</minimum>
     </value-attributes>
-    <on-ambari-upgrade add="false"/>
+    <on-ambari-upgrade add="true"/>
   </property>
   <property>
     <name>content</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/d15c6109/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java
index 98aaa0f..52bc02f 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java
@@ -589,13 +589,169 @@ public class UpgradeCatalog250Test {
     expect(controller.createConfig(anyObject(Cluster.class), anyString(), capture(logSearchEnvCapture), anyString(),
         EasyMock.<Map<String, Map<String, String>>>anyObject())).andReturn(config).once();
 
+    Map<String, String> oldLogFeederLog4j = ImmutableMap.of(
+        "content",
+        "    <appender name=\"rolling_file\" class=\"org.apache.log4j.RollingFileAppender\">\n" +
+        "    <param name=\"file\" value=\"{{logfeeder_log_dir}}/logfeeder.log\"/>\n" +
+        "    <param name=\"append\" value=\"true\"/>\n" +
+        "    <param name=\"maxFileSize\" value=\"11MB\"/>\n" +
+        "    <param name=\"maxBackupIndex\" value=\"12\"/>\n" +
+        "    <layout class=\"org.apache.log4j.PatternLayout\">\n" +
+        "      <param name=\"ConversionPattern\" value=\"%d [%t] %-5p %C{6} (%F:%L) - %m%n\"/>\n" +
+        "    </layout>\n" +
+        "  </appender>\n" +
+        "\n" +
+        "  <appender name=\"rolling_file_json\"\n" +
+        "    class=\"org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender\">\n" +
+        "    <param name=\"file\" value=\"{{logfeeder_log_dir}}/logsearch-logfeeder.json\" />\n" +
+        "    <param name=\"append\" value=\"true\" />\n" +
+        "    <param name=\"maxFileSize\" value=\"13MB\" />\n" +
+        "    <param name=\"maxBackupIndex\" value=\"14\" />\n" +
+        "    <layout class=\"org.apache.ambari.logsearch.appender.LogsearchConversion\" />\n" +
+        "  </appender>");
+    
+    Map<String, String> expectedLogFeederLog4j = ImmutableMap.of(
+        "content",
+        "    <appender name=\"rolling_file\" class=\"org.apache.log4j.RollingFileAppender\">\n" +
+        "    <param name=\"file\" value=\"{{logfeeder_log_dir}}/logfeeder.log\"/>\n" +
+        "    <param name=\"append\" value=\"true\"/>\n" +
+        "    <param name=\"maxFileSize\" value=\"{{logfeeder_log_maxfilesize}}MB\"/>\n" +
+        "    <param name=\"maxBackupIndex\" value=\"{{logfeeder_log_maxbackupindex}}\"/>\n" +
+        "    <layout class=\"org.apache.log4j.PatternLayout\">\n" +
+        "      <param name=\"ConversionPattern\" value=\"%d [%t] %-5p %C{6} (%F:%L) - %m%n\"/>\n" +
+        "    </layout>\n" +
+        "  </appender>\n" +
+        "\n" +
+        "  <appender name=\"rolling_file_json\"\n" +
+        "    class=\"org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender\">\n" +
+        "    <param name=\"file\" value=\"{{logfeeder_log_dir}}/logsearch-logfeeder.json\" />\n" +
+        "    <param name=\"append\" value=\"true\" />\n" +
+        "    <param name=\"maxFileSize\" value=\"{{logfeeder_json_log_maxfilesize}}MB\" />\n" +
+        "    <param name=\"maxBackupIndex\" value=\"{{logfeeder_json_log_maxbackupindex}}\" />\n" +
+        "    <layout class=\"org.apache.ambari.logsearch.appender.LogsearchConversion\" />\n" +
+        "  </appender>",
+        "logfeeder_log_maxfilesize", "11",
+        "logfeeder_log_maxbackupindex", "12",
+        "logfeeder_json_log_maxfilesize", "13",
+        "logfeeder_json_log_maxbackupindex", "14");
+    
+    Config mockLogFeederLog4j = easyMockSupport.createNiceMock(Config.class);
+    expect(cluster.getDesiredConfigByType("logfeeder-log4j")).andReturn(mockLogFeederLog4j).atLeastOnce();
+    expect(mockLogFeederLog4j.getProperties()).andReturn(oldLogFeederLog4j).anyTimes();
+    Capture<Map<String, String>> logFeederLog4jCapture = EasyMock.newCapture();
+    expect(controller.createConfig(anyObject(Cluster.class), anyString(), capture(logFeederLog4jCapture), anyString(),
+      anyObject(Map.class))).andReturn(config).once();
+
     Map<String, String> oldLogSearchLog4j = ImmutableMap.of(
-        "content", "{{logsearch_log_dir}}/logsearch.err\n" +
-                   "<priority value=\"warn\"/>");
+        "content",
+        "  <appender name=\"rolling_file\" class=\"org.apache.log4j.RollingFileAppender\">\n" +
+        "    <param name=\"file\" value=\"{{logsearch_log_dir}}/logsearch.err\" />\n" +
+        "    <param name=\"Threshold\" value=\"info\" />\n" +
+        "    <param name=\"append\" value=\"true\" />\n" +
+        "    <param name=\"maxFileSize\" value=\"11MB\" />\n" +
+        "    <param name=\"maxBackupIndex\" value=\"12\" />\n" +
+        "    <layout class=\"org.apache.log4j.PatternLayout\">\n" +
+        "      <param name=\"ConversionPattern\" value=\"%d [%t] %-5p %C{6} (%F:%L) - %m%n\" />\n" +
+        "    </layout>\n" +
+        "  </appender>\n" +
+        "\n" +
+        "  <appender name=\"rolling_file_json\" class=\"org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender\">\n" +
+        "    <param name=\"file\" value=\"{{logsearch_log_dir}}/logsearch.json\"/>\n" +
+        "    <param name=\"append\" value=\"true\"/>\n" +
+        "    <param name=\"maxFileSize\" value=\"13MB\"/>\n" +
+        "    <param name=\"maxBackupIndex\" value=\"14\"/>\n" +
+        "    <layout class=\"org.apache.ambari.logsearch.appender.LogsearchConversion\"/>\n" +
+        "  </appender>\n" +
+        "\n" +
+        "  <appender name=\"audit_rolling_file_json\" class=\"org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender\">\n" +
+        "    <param name=\"file\" value=\"{{logsearch_log_dir}}/logsearch-audit.json\"/>\n" +
+        "    <param name=\"append\" value=\"true\"/>\n" +
+        "    <param name=\"maxFileSize\" value=\"15MB\"/>\n" +
+        "    <param name=\"maxBackupIndex\" value=\"16\"/>\n" +
+        "    <layout class=\"org.apache.ambari.logsearch.appender.LogsearchConversion\"/>\n" +
+        "  </appender>\n" +
+        "\n" +
+        "  <appender name=\"performance_analyzer_json\" class=\"org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender\">\n" +
+        "    <param name=\"file\" value=\"{{logsearch_log_dir}}/logsearch-performance.json\"/>\n" +
+        "    <param name=\"Threshold\" value=\"info\"/>\n" +
+        "    <param name=\"append\" value=\"true\"/>\n" +
+        "    <param name=\"maxFileSize\" value=\"17MB\"/>\n" +
+        "    <param name=\"maxBackupIndex\" value=\"18\"/>\n" +
+        "    <layout class=\"org.apache.ambari.logsearch.appender.LogsearchConversion\"/>\n" +
+        "  </appender>\n" +
+        "\n" +
+        "  <logger name=\"org.apache.ambari.logsearch.audit\" additivity=\"true\">\n" +
+        "     <appender-ref ref=\"audit_rolling_file_json\"/>\n" +
+        "  </logger>\n" +
+        "\n" +
+        "  <logger name=\"org.apache.ambari.logsearch.performance\" additivity=\"false\">\n" +
+        "    <appender-ref ref=\"performance_analyzer_json\"/>\n" +
+        "  </logger>\n" +
+        "\n" +
+        "  <category name=\"org.apache.ambari.logsearch\" additivity=\"false\">\n" +
+        "    <priority value=\"warn\"/>\n" +
+        "    <appender-ref ref=\"rolling_file_json\"/>\n" +
+        "  </category>");
     
-    Map<String, String> expectedLogSearchLog4j = ImmutableMap.of(
-        "content", "{{logsearch_log_dir}}/logsearch.log\n" +
-                   "<priority value=\"info\"/>");
+    Map<String, String> expectedLogSearchLog4j = new HashMap<>();
+      expectedLogSearchLog4j.put("content",
+        "  <appender name=\"rolling_file\" class=\"org.apache.log4j.RollingFileAppender\">\n" +
+        "    <param name=\"file\" value=\"{{logsearch_log_dir}}/logsearch.log\" />\n" +
+        "    <param name=\"Threshold\" value=\"info\" />\n" +
+        "    <param name=\"append\" value=\"true\" />\n" +
+        "    <param name=\"maxFileSize\" value=\"{{logsearch_log_maxfilesize}}MB\" />\n" +
+        "    <param name=\"maxBackupIndex\" value=\"{{logsearch_log_maxbackupindex}}\" />\n" +
+        "    <layout class=\"org.apache.log4j.PatternLayout\">\n" +
+        "      <param name=\"ConversionPattern\" value=\"%d [%t] %-5p %C{6} (%F:%L) - %m%n\" />\n" +
+        "    </layout>\n" +
+        "  </appender>\n" +
+        "\n" +
+        "  <appender name=\"rolling_file_json\" class=\"org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender\">\n" +
+        "    <param name=\"file\" value=\"{{logsearch_log_dir}}/logsearch.json\"/>\n" +
+        "    <param name=\"append\" value=\"true\"/>\n" +
+        "    <param name=\"maxFileSize\" value=\"{{logsearch_json_log_maxfilesize}}MB\"/>\n" +
+        "    <param name=\"maxBackupIndex\" value=\"{{logsearch_json_log_maxbackupindex}}\"/>\n" +
+        "    <layout class=\"org.apache.ambari.logsearch.appender.LogsearchConversion\"/>\n" +
+        "  </appender>\n" +
+        "\n" +
+        "  <appender name=\"audit_rolling_file_json\" class=\"org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender\">\n" +
+        "    <param name=\"file\" value=\"{{logsearch_log_dir}}/logsearch-audit.json\"/>\n" +
+        "    <param name=\"append\" value=\"true\"/>\n" +
+        "    <param name=\"maxFileSize\" value=\"{{logsearch_audit_log_maxfilesize}}MB\"/>\n" +
+        "    <param name=\"maxBackupIndex\" value=\"{{logsearch_audit_log_maxbackupindex}}\"/>\n" +
+        "    <layout class=\"org.apache.ambari.logsearch.appender.LogsearchConversion\"/>\n" +
+        "  </appender>\n" +
+        "\n" +
+        "  <appender name=\"performance_analyzer_json\" class=\"org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender\">\n" +
+        "    <param name=\"file\" value=\"{{logsearch_log_dir}}/logsearch-performance.json\"/>\n" +
+        "    <param name=\"Threshold\" value=\"info\"/>\n" +
+        "    <param name=\"append\" value=\"true\"/>\n" +
+        "    <param name=\"maxFileSize\" value=\"{{logsearch_perf_log_maxfilesize}}MB\"/>\n" +
+        "    <param name=\"maxBackupIndex\" value=\"{{logsearch_perf_log_maxbackupindex}}\"/>\n" +
+        "    <layout class=\"org.apache.ambari.logsearch.appender.LogsearchConversion\"/>\n" +
+        "  </appender>\n" +
+        "\n" +
+        "  <logger name=\"org.apache.ambari.logsearch.audit\" additivity=\"true\">\n" +
+        "     <appender-ref ref=\"audit_rolling_file_json\"/>\n" +
+        "  </logger>\n" +
+        "\n" +
+        "  <logger name=\"org.apache.ambari.logsearch.performance\" additivity=\"false\">\n" +
+        "    <appender-ref ref=\"performance_analyzer_json\"/>\n" +
+        "  </logger>\n" +
+        "\n" +
+        "  <category name=\"org.apache.ambari.logsearch\" additivity=\"false\">\n" +
+        "    <priority value=\"info\"/>\n" +
+        "    <appender-ref ref=\"rolling_file_json\"/>\n" +
+        "  </category>");
+
+      expectedLogSearchLog4j.put("logsearch_log_maxfilesize", "11");
+      expectedLogSearchLog4j.put("logsearch_log_maxbackupindex", "12");
+      expectedLogSearchLog4j.put("logsearch_json_log_maxfilesize", "13");
+      expectedLogSearchLog4j.put("logsearch_json_log_maxbackupindex", "14");
+      expectedLogSearchLog4j.put("logsearch_audit_log_maxfilesize", "15");
+      expectedLogSearchLog4j.put("logsearch_audit_log_maxbackupindex", "16");
+      expectedLogSearchLog4j.put("logsearch_perf_log_maxfilesize", "17");
+      expectedLogSearchLog4j.put("logsearch_perf_log_maxbackupindex", "18");
     
     Config mockLogSearchLog4j = easyMockSupport.createNiceMock(Config.class);
     expect(cluster.getDesiredConfigByType("logsearch-log4j")).andReturn(mockLogSearchLog4j).atLeastOnce();
@@ -606,7 +762,7 @@ public class UpgradeCatalog250Test {
 
     replay(clusters, cluster);
     replay(controller, injector2);
-    replay(mockLogSearchProperties, mockLogFeederEnv, mockLogSearchEnv, mockLogSearchLog4j);
+    replay(mockLogSearchProperties, mockLogFeederEnv, mockLogSearchEnv, mockLogFeederLog4j, mockLogSearchLog4j);
     new UpgradeCatalog250(injector2).updateLogSearchConfigs();
     easyMockSupport.verifyAll();
 
@@ -619,6 +775,9 @@ public class UpgradeCatalog250Test {
     Map<String, String> updatedLogSearchEnv = logSearchEnvCapture.getValue();
     assertTrue(Maps.difference(expectedLogSearchEnv, updatedLogSearchEnv).areEqual());
     
+    Map<String, String> updatedLogFeederLog4j = logFeederLog4jCapture.getValue();
+    assertTrue(Maps.difference(expectedLogFeederLog4j, updatedLogFeederLog4j).areEqual());
+    
     Map<String, String> updatedLogSearchLog4j = logSearchLog4jCapture.getValue();
     assertTrue(Maps.difference(expectedLogSearchLog4j, updatedLogSearchLog4j).areEqual());
   }