From 375abe96b90bf5441d199e4ebc38509144308c42 Mon Sep 17 00:00:00 2001 From: wu-sheng Date: Thu, 21 Dec 2017 15:58:22 +0800 Subject: [PATCH] Make sure the log config works. --- .../core/conf/SnifferConfigInitializer.java | 20 ++++++++++++------- .../core/logging/core/WriterFactory.java | 3 ++- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializer.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializer.java index 5538a554c..2e674177f 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializer.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializer.java @@ -19,13 +19,6 @@ package org.apache.skywalking.apm.agent.core.conf; -import org.apache.skywalking.apm.agent.core.boot.AgentPackageNotFoundException; -import org.apache.skywalking.apm.agent.core.boot.AgentPackagePath; -import org.apache.skywalking.apm.agent.core.logging.api.ILog; -import org.apache.skywalking.apm.agent.core.logging.api.LogManager; -import org.apache.skywalking.apm.util.ConfigInitializer; -import org.apache.skywalking.apm.util.StringUtil; - import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -33,6 +26,12 @@ import java.io.InputStream; import java.util.Iterator; import java.util.Map; import java.util.Properties; +import org.apache.skywalking.apm.agent.core.boot.AgentPackageNotFoundException; +import org.apache.skywalking.apm.agent.core.boot.AgentPackagePath; +import org.apache.skywalking.apm.agent.core.logging.api.ILog; +import org.apache.skywalking.apm.agent.core.logging.api.LogManager; +import org.apache.skywalking.apm.util.ConfigInitializer; +import org.apache.skywalking.apm.util.StringUtil; /** * The SnifferConfigInitializer initializes all configs in several way. @@ -44,6 +43,7 @@ public class SnifferConfigInitializer { private static final ILog logger = LogManager.getLogger(SnifferConfigInitializer.class); private static String CONFIG_FILE_NAME = "/config/agent.config"; private static String ENV_KEY_PREFIX = "skywalking."; + private static boolean IS_INIT_COMPLETED = false; /** * Try to locate `agent.config`, which should be in the /config dictionary of agent package. @@ -78,6 +78,12 @@ public class SnifferConfigInitializer { if (StringUtil.isEmpty(Config.Collector.SERVERS)) { throw new ExceptionInInitializerError("`collector.servers` is missing."); } + + IS_INIT_COMPLETED = true; + } + + public static boolean isInitCompleted() { + return IS_INIT_COMPLETED; } /** diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/logging/core/WriterFactory.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/logging/core/WriterFactory.java index 9ee6ebf52..4bc357d2d 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/logging/core/WriterFactory.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/logging/core/WriterFactory.java @@ -22,11 +22,12 @@ package org.apache.skywalking.apm.agent.core.logging.core; import org.apache.skywalking.apm.agent.core.boot.AgentPackageNotFoundException; import org.apache.skywalking.apm.agent.core.boot.AgentPackagePath; import org.apache.skywalking.apm.agent.core.conf.Config; +import org.apache.skywalking.apm.agent.core.conf.SnifferConfigInitializer; import org.apache.skywalking.apm.util.StringUtil; public class WriterFactory { public static IWriter getLogWriter() { - if (AgentPackagePath.isPathFound()) { + if (SnifferConfigInitializer.isInitCompleted() && AgentPackagePath.isPathFound()) { if (StringUtil.isEmpty(Config.Logging.DIR)) { try { Config.Logging.DIR = AgentPackagePath.getPath() + "/logs";