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 8c9a619ffa86f6afdea6bfc7e4c0901c0c02950a..95db3dd70c190f5513c9dedaaba7be27d5c03bfb 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 @@ -25,23 +25,37 @@ 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; +/** + * @author Alan Lau + */ public class WriterFactory { + + private static IWriter WRITER; + public static IWriter getLogWriter() { - if (!useConsole() && SnifferConfigInitializer.isInitCompleted() && AgentPackagePath.isPathFound()) { - if (StringUtil.isEmpty(Config.Logging.DIR)) { - try { - Config.Logging.DIR = AgentPackagePath.getPath() + "/logs"; - } catch (AgentPackageNotFoundException e) { - e.printStackTrace(); + + switch (Config.Logging.OUTPUT) { + case FILE: + if (WRITER != null) { + return WRITER; } - } - return FileWriter.get(); - } else { - return SystemOutWriter.INSTANCE; - } - } + if (SnifferConfigInitializer.isInitCompleted() && AgentPackagePath.isPathFound()) { + if (StringUtil.isEmpty(Config.Logging.DIR)) { + try { + Config.Logging.DIR = AgentPackagePath.getPath() + "/logs"; + } catch (AgentPackageNotFoundException e) { + e.printStackTrace(); + } + } + WRITER = FileWriter.get(); + } else { + return SystemOutWriter.INSTANCE; + } + break; + default: + return SystemOutWriter.INSTANCE; - private static boolean useConsole() { - return LogOutput.CONSOLE == Config.Logging.OUTPUT; + } + return WRITER; } }