Fixing event log dir to fall back on storm.local.dir if storm.home is null
Project: http://git-wip-us.apache.org/repos/asf/storm/repo Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/f3baed0d Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/f3baed0d Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/f3baed0d Branch: refs/heads/1.x-branch Commit: f3baed0d4bb9c415657dfa97f33519994e991e17 Parents: 8d60961 Author: Arun Mahadevan <[email protected]> Authored: Mon Feb 22 00:03:29 2016 +0530 Committer: Arun Mahadevan <[email protected]> Committed: Mon Feb 22 00:04:52 2016 +0530 ---------------------------------------------------------------------- .../storm/metric/FileBasedEventLogger.java | 22 ++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/storm/blob/f3baed0d/storm-core/src/jvm/org/apache/storm/metric/FileBasedEventLogger.java ---------------------------------------------------------------------- diff --git a/storm-core/src/jvm/org/apache/storm/metric/FileBasedEventLogger.java b/storm-core/src/jvm/org/apache/storm/metric/FileBasedEventLogger.java index 076a68c..6a07c0e 100644 --- a/storm-core/src/jvm/org/apache/storm/metric/FileBasedEventLogger.java +++ b/storm-core/src/jvm/org/apache/storm/metric/FileBasedEventLogger.java @@ -17,6 +17,7 @@ */ package org.apache.storm.metric; +import org.apache.commons.lang.StringUtils; import org.apache.storm.Config; import org.apache.storm.task.TopologyContext; import org.slf4j.Logger; @@ -77,11 +78,24 @@ public class FileBasedEventLogger implements IEventLogger { scheduler.scheduleAtFixedRate(task, FLUSH_INTERVAL_MILLIS, FLUSH_INTERVAL_MILLIS, TimeUnit.MILLISECONDS); } + private String getFirstNonNull(String... strings) { + for (String str : strings) { + if (str != null) { + return str; + } + } + return null; + } + private String getLogDir(Map stormConf) { - String logDir; - if ((logDir = System.getProperty("storm.log.dir")) == null - && (logDir = (String) stormConf.get("storm.log.dir")) == null) { - logDir = Paths.get(System.getProperty("storm.home"), "logs").toString(); + String logDir = getFirstNonNull(System.getProperty("storm.log.dir"), + (String) stormConf.get("storm.log.dir")); + if (logDir == null) { + logDir = Paths.get(getFirstNonNull(System.getProperty("storm.home"), + System.getProperty("storm.local.dir"), + (String) stormConf.get("storm.local.dir"), + StringUtils.EMPTY), + "logs").toString(); } return logDir; }
