AMBARI-24928. Fix non-fatal POSTUN scriptlet failure + use different logfile for metrics (#31)

diff --git a/ambari-logsearch-assembly/src/main/package/deb/logfeeder/postrm b/ambari-logsearch-assembly/src/main/package/deb/logfeeder/postrm
index 5f1c623..5da2406 100644
--- a/ambari-logsearch-assembly/src/main/package/deb/logfeeder/postrm
+++ b/ambari-logsearch-assembly/src/main/package/deb/logfeeder/postrm
@@ -18,4 +18,10 @@
 LOGFEEDER_CONF_DIR_LINK="/etc/ambari-logsearch-logfeeder/conf"
 
 rm -f $LOGFEEDER_SCRIPT_LINK_NAME
-rm -f $LOGFEEDER_CONF_DIR_LINK
\ No newline at end of file
+if [ -d "$LOGFEEDER_CONF_DIR_LINK" ]; then
+  rm -rf $LOGFEEDER_CONF_DIR_LINK
+fi
+
+if [ -f  "$LOGFEEDER_CONF_DIR_LINK" ]; then
+  rm -f $LOGFEEDER_CONF_DIR_LINK
+fi
\ No newline at end of file
diff --git a/ambari-logsearch-assembly/src/main/package/deb/portal/postrm b/ambari-logsearch-assembly/src/main/package/deb/portal/postrm
index 8de05c1..a21421f 100644
--- a/ambari-logsearch-assembly/src/main/package/deb/portal/postrm
+++ b/ambari-logsearch-assembly/src/main/package/deb/portal/postrm
@@ -18,4 +18,10 @@
 LOGSEARCH_CONF_DIR_LINK="/etc/ambari-logsearch-portal/conf"
 
 rm -f $LOGSEARCH_SCRIPT_LINK_NAME
-rm -f $LOGSEARCH_CONF_DIR_LINK
\ No newline at end of file
+if [ -d "$LOGSEARCH_CONF_DIR_LINK" ]; then
+  rm -rf $LOGSEARCH_CONF_DIR_LINK
+fi
+
+if [ -f  "$LOGSEARCH_CONF_DIR_LINK" ]; then
+  rm -f $LOGSEARCH_CONF_DIR_LINK
+fi
\ No newline at end of file
diff --git a/ambari-logsearch-assembly/src/main/package/rpm/logfeeder/postremove.sh b/ambari-logsearch-assembly/src/main/package/rpm/logfeeder/postremove.sh
index 4583980..956d81e 100755
--- a/ambari-logsearch-assembly/src/main/package/rpm/logfeeder/postremove.sh
+++ b/ambari-logsearch-assembly/src/main/package/rpm/logfeeder/postremove.sh
@@ -19,5 +19,13 @@
 LOGFEEDER_CONF_DIR_LINK="$LOGFEEDER_ETC_FOLDER/conf"
 
 rm -f $LOGFEEDER_SCRIPT_LINK_NAME
-rm -f $LOGFEEDER_CONF_DIR_LINK
-rm -f $LOGFEEDER_ETC_FOLDER
\ No newline at end of file
+if [ -f "$LOGFEEDER_CONF_DIR_LINK" ]; then
+  rm -f $LOGFEEDER_CONF_DIR_LINK
+fi
+if [ -d "$LOGFEEDER_CONF_DIR_LINK" ]; then
+  rm -rf $LOGFEEDER_CONF_DIR_LINK
+fi
+
+if [ -d "$LOGFEEDER_ETC_FOLDER" ]; then
+  rm -rf $LOGFEEDER_ETC_FOLDER
+fi
\ No newline at end of file
diff --git a/ambari-logsearch-assembly/src/main/package/rpm/portal/postremove.sh b/ambari-logsearch-assembly/src/main/package/rpm/portal/postremove.sh
index b07a1ad..c96ec72 100644
--- a/ambari-logsearch-assembly/src/main/package/rpm/portal/postremove.sh
+++ b/ambari-logsearch-assembly/src/main/package/rpm/portal/postremove.sh
@@ -19,5 +19,13 @@
 LOGSEARCH_CONF_DIR_LINK="$LOGSEARCH_ETC_FOLDER/conf"
 
 rm -f $LOGSEARCH_SCRIPT_LINK_NAME
-rm -f $LOGSEARCH_CONF_DIR_LINK
-rm -f $LOGSEARCH_ETC_FOLDER
\ No newline at end of file
+if [ -f "$LOGSEARCH_CONF_DIR_LINK" ]; then
+  rm -f $LOGSEARCH_CONF_DIR_LINK
+fi
+if [ -d "$LOGSEARCH_CONF_DIR_LINK" ]; then
+  rm -rf $LOGSEARCH_CONF_DIR_LINK
+fi
+
+if [ -d "$LOGSEARCH_ETC_FOLDER" ]; then
+  rm -rf $LOGSEARCH_ETC_FOLDER
+fi
\ No newline at end of file
diff --git a/ambari-logsearch-logfeeder-plugin-api/src/main/java/org/apache/ambari/logfeeder/plugin/common/ConfigItem.java b/ambari-logsearch-logfeeder-plugin-api/src/main/java/org/apache/ambari/logfeeder/plugin/common/ConfigItem.java
index 27bb04f..12c01db 100644
--- a/ambari-logsearch-logfeeder-plugin-api/src/main/java/org/apache/ambari/logfeeder/plugin/common/ConfigItem.java
+++ b/ambari-logsearch-logfeeder-plugin-api/src/main/java/org/apache/ambari/logfeeder/plugin/common/ConfigItem.java
@@ -36,7 +36,7 @@
  */
 public abstract class ConfigItem<PROP_TYPE extends LogFeederProperties> implements Cloneable, Serializable {
 
-  private static final Logger logger = LogManager.getLogger(ConfigItem.class);
+  private static final Logger logger = LogManager.getLogger("logfeeder.metrics");
 
   private final static String GSON_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS";
   private static Gson gson = new GsonBuilder().setDateFormat(GSON_DATE_FORMAT).create();
diff --git a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/metrics/StatsLogger.java b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/metrics/StatsLogger.java
index bc1510a..0d52e2c 100644
--- a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/metrics/StatsLogger.java
+++ b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/metrics/StatsLogger.java
@@ -30,7 +30,7 @@
 
 public class StatsLogger extends Thread {
 
-  private static final Logger logger = LogManager.getLogger(StatsLogger.class);
+  private static final Logger logger = LogManager.getLogger("logfeeder.metrics");
 
   private static final int CHECKPOINT_CLEAN_INTERVAL_MS = 24 * 60 * 60 * 60 * 1000; // 24 hours
 
diff --git a/ambari-logsearch-logfeeder/src/main/resources/log4j2.yml b/ambari-logsearch-logfeeder/src/main/resources/log4j2.yml
index 21e3312..8b43c35 100644
--- a/ambari-logsearch-logfeeder/src/main/resources/log4j2.yml
+++ b/ambari-logsearch-logfeeder/src/main/resources/log4j2.yml
@@ -51,6 +51,16 @@
           size: 10 MB
       DefaultRollOverStrategy:
         max: 10
+    - name: MetricsFile_Appender
+      fileName: ${log-path}/logfeeder-metrics.log
+      filePattern: "logfeeder-metrics.log.%d{yyyy-MM-dd-hh-mm}.gz"
+      PatternLayout:
+        pattern: "%d [%t] %-5p %C{6} (%F:%L) - %m%n"
+      Policies:
+        SizeBasedTriggeringPolicy:
+          size: 10 MB
+      DefaultRollOverStrategy:
+        max: 10
 
   Loggers:
 
@@ -71,4 +81,10 @@
       additivity: false
       level: info
       AppenderRef:
+      - ref: Console_Appender
+    - name: logfeeder.metrics
+      additivity: false
+      level: info
+      AppenderRef:
+      - ref: MetricsFile_Appender
       - ref: Console_Appender
\ No newline at end of file