AMBARI-24950 - Logsearch: use os timezone in Logfeeder (#41)
diff --git a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/loglevelfilter/LogLevelFilterHandler.java b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/loglevelfilter/LogLevelFilterHandler.java
index a00e99b..1bef6ab 100644
--- a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/loglevelfilter/LogLevelFilterHandler.java
+++ b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/loglevelfilter/LogLevelFilterHandler.java
@@ -18,7 +18,17 @@
*/
package org.apache.ambari.logfeeder.loglevelfilter;
-import com.google.gson.Gson;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.concurrent.ConcurrentHashMap;
+
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+
import org.apache.ambari.logfeeder.common.LogFeederConstants;
import org.apache.ambari.logfeeder.conf.LogFeederProps;
import org.apache.ambari.logfeeder.plugin.input.InputMarker;
@@ -37,16 +47,7 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.TimeZone;
-import java.util.TreeMap;
-import java.util.concurrent.ConcurrentHashMap;
+import com.google.gson.Gson;
/**
* Manage log level filter object and cache them. (in memory)
@@ -54,18 +55,11 @@
public class LogLevelFilterHandler implements LogLevelFilterMonitor {
private static final Logger logger = LogManager.getLogger(LogLevelFilterHandler.class);
- private static final String TIMEZONE = "GMT";
private static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS";
private static final boolean DEFAULT_VALUE = true;
- private static ThreadLocal<DateFormat> formatter = new ThreadLocal<DateFormat>() {
- protected DateFormat initialValue() {
- SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
- dateFormat.setTimeZone(TimeZone.getTimeZone(TIMEZONE));
- return dateFormat;
- }
- };
+ private static ThreadLocal<DateFormat> formatter = ThreadLocal.withInitial(() -> new SimpleDateFormat(DATE_FORMAT));
@Inject
private LogFeederProps logFeederProps;
@@ -83,7 +77,6 @@
@PostConstruct
public void init() throws Exception {
- TimeZone.setDefault(TimeZone.getTimeZone(TIMEZONE));
if (logFeederProps.isZkFilterStorage() && logFeederProps.isUseLocalConfigs()) {
LogLevelFilterManagerZK filterManager = (LogLevelFilterManagerZK) config.getLogLevelFilterManager();
CuratorFramework client = filterManager.getClient();
diff --git a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/util/DateUtil.java b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/util/DateUtil.java
index 811feeb..56395af 100644
--- a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/util/DateUtil.java
+++ b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/util/DateUtil.java
@@ -18,32 +18,19 @@
*/
package org.apache.ambari.logfeeder.util;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
public class DateUtil {
private static final Logger logger = LogManager.getLogger(DateUtil.class);
private DateUtil() {
throw new UnsupportedOperationException();
}
-
- public static String dateToString(Date date, String dateFormat) {
- if (date == null || dateFormat == null || dateFormat.isEmpty()) {
- return "";
- }
- try {
- SimpleDateFormat formatter = new SimpleDateFormat(dateFormat);
- return formatter.format(date).toString();
- } catch (Exception e) {
- logger.error("Error in coverting dateToString format :" + dateFormat, e);
- }
- return "";
- }
private final static String SOLR_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
private static ThreadLocal<SimpleDateFormat> dateFormatter = new ThreadLocal<SimpleDateFormat>() {