diff --git a/pom.xml b/pom.xml index c71b9ec..937a71d 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ 4.5.14 4.4.16 4.5.14 - 2.0.7 + 2.0.12 5.9.2 diff --git a/src/main/java/com/redhat/insights/agent/AgentBasicReport.java b/src/main/java/com/redhat/insights/agent/AgentBasicReport.java index 8caf93b..fb4cb74 100644 --- a/src/main/java/com/redhat/insights/agent/AgentBasicReport.java +++ b/src/main/java/com/redhat/insights/agent/AgentBasicReport.java @@ -1,4 +1,4 @@ -/* Copyright (C) Red Hat 2023 */ +/* Copyright (C) Red Hat 2023-2024 */ package com.redhat.insights.agent; import com.redhat.insights.config.InsightsConfiguration; @@ -10,7 +10,7 @@ import java.util.Map; public class AgentBasicReport extends AbstractTopLevelReportBase { - private static final InsightsLogger logger = new SLF4JLogger(AgentBasicReport.class); + private static final InsightsLogger logger = AgentLogger.getLogger(); private AgentBasicReport( InsightsConfiguration config, Map subReports) { diff --git a/src/main/java/com/redhat/insights/agent/SLF4JLogger.java b/src/main/java/com/redhat/insights/agent/AgentLogger.java similarity index 55% rename from src/main/java/com/redhat/insights/agent/SLF4JLogger.java rename to src/main/java/com/redhat/insights/agent/AgentLogger.java index d510d94..f4447fb 100644 --- a/src/main/java/com/redhat/insights/agent/SLF4JLogger.java +++ b/src/main/java/com/redhat/insights/agent/AgentLogger.java @@ -1,18 +1,39 @@ -/* Copyright (C) Red Hat 2023 */ +/* Copyright (C) Red Hat 2023-2024 */ package com.redhat.insights.agent; import com.redhat.insights.logging.InsightsLogger; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.slf4j.simple.SimpleLogger; -public class SLF4JLogger implements InsightsLogger { +public class AgentLogger implements InsightsLogger { - private final Logger delegate; + private static AgentLogger instance; - public SLF4JLogger(Class clazz) { + private Logger delegate; + + private AgentLogger(Class clazz) { this.delegate = LoggerFactory.getLogger(clazz); } + public static synchronized AgentLogger getLogger() { + if (instance == null) { + instance = new AgentLogger(AgentMain.class); + } + return instance; + } + + static class DebugSimpleLogger extends SimpleLogger { + public DebugSimpleLogger() { + super("com.redhat.insights.agent.AgentLogger"); + currentLogLevel = SimpleLogger.LOG_LEVEL_DEBUG; + } + } + + public void setDebugDelegate() { + this.delegate = new DebugSimpleLogger(); + } + @Override public void debug(String message) { delegate.debug(message); diff --git a/src/main/java/com/redhat/insights/agent/AgentMain.java b/src/main/java/com/redhat/insights/agent/AgentMain.java index ca3ef91..b46325e 100644 --- a/src/main/java/com/redhat/insights/agent/AgentMain.java +++ b/src/main/java/com/redhat/insights/agent/AgentMain.java @@ -6,7 +6,6 @@ import com.redhat.insights.http.InsightsFileWritingClient; import com.redhat.insights.http.InsightsHttpClient; import com.redhat.insights.jars.JarInfo; -import com.redhat.insights.logging.InsightsLogger; import com.redhat.insights.reports.InsightsReport; import com.redhat.insights.tls.PEMSupport; import java.lang.instrument.Instrumentation; @@ -22,7 +21,7 @@ /** Main class for the agent. */ public final class AgentMain { - private static final InsightsLogger logger = new SLF4JLogger(AgentMain.class); + private static final AgentLogger logger = AgentLogger.getLogger(); private final AgentConfiguration configuration; private final BlockingQueue waitingJars; @@ -72,6 +71,10 @@ public static void startAgent(String agentArgs, Instrumentation instrumentation) "Config indicates Red Hat Insights agent is not to be run. Not starting agent capability."); return; } + if (config.isDebug()) { + logger.setDebugDelegate(); + logger.debug("Running in debug mode"); + } final BlockingQueue jarsToSend = new LinkedBlockingQueue<>(); try { @@ -163,7 +166,7 @@ static Optional parseArgs(String agentArgs) { private static boolean shouldLookForCerts(AgentConfiguration config) { boolean hasToken = config.getMaybeAuthToken().isPresent(); - return !hasToken && !config.isDebug() && !config.isFileOnly() && !config.isOptingOut(); + return !hasToken && !config.isFileOnly() && !config.isOptingOut(); } private void start() { @@ -181,7 +184,7 @@ private void start() { private Supplier getInsightsClientSupplier() { final Supplier out; - if (configuration.isDebug() || configuration.isFileOnly()) { + if (configuration.isFileOnly()) { out = () -> new InsightsFileWritingClient(logger, configuration); } else if (configuration.isOCP()) { out = () -> new InsightsAgentHttpClient(configuration); diff --git a/src/main/java/com/redhat/insights/agent/AgentSubreport.java b/src/main/java/com/redhat/insights/agent/AgentSubreport.java index b0583c9..ac0f484 100644 --- a/src/main/java/com/redhat/insights/agent/AgentSubreport.java +++ b/src/main/java/com/redhat/insights/agent/AgentSubreport.java @@ -1,4 +1,4 @@ -/* Copyright (C) Red Hat 2023 */ +/* Copyright (C) Red Hat 2023-2024 */ package com.redhat.insights.agent; import static java.lang.System.getProperty; @@ -19,7 +19,7 @@ import java.util.function.Function; public class AgentSubreport implements InsightsSubreport { - private static final InsightsLogger logger = new SLF4JLogger(AgentSubreport.class); + private static final InsightsLogger logger = AgentLogger.getLogger(); private static final Class[] EMPTY_CLASS_ARRAY = new Class[0]; private static final Object[] EMPTY_OBJECT_ARRAY = new Object[0]; diff --git a/src/main/java/com/redhat/insights/agent/ClassNoticer.java b/src/main/java/com/redhat/insights/agent/ClassNoticer.java index 2acb296..2a9af2b 100644 --- a/src/main/java/com/redhat/insights/agent/ClassNoticer.java +++ b/src/main/java/com/redhat/insights/agent/ClassNoticer.java @@ -1,4 +1,4 @@ -/* Copyright (C) Red Hat 2023 */ +/* Copyright (C) Red Hat 2023-2024 */ package com.redhat.insights.agent; import com.redhat.insights.jars.JarAnalyzer; @@ -15,7 +15,7 @@ import java.util.concurrent.BlockingQueue; public final class ClassNoticer implements ClassFileTransformer { - private static final InsightsLogger logger = new SLF4JLogger(ClassNoticer.class); + private static final InsightsLogger logger = AgentLogger.getLogger(); private final BlockingQueue jarsToSend; private final JarAnalyzer analyzer; diff --git a/src/main/java/com/redhat/insights/agent/InsightsAgentHttpClient.java b/src/main/java/com/redhat/insights/agent/InsightsAgentHttpClient.java index c00c1a1..e3cdc77 100644 --- a/src/main/java/com/redhat/insights/agent/InsightsAgentHttpClient.java +++ b/src/main/java/com/redhat/insights/agent/InsightsAgentHttpClient.java @@ -28,7 +28,7 @@ import org.apache.http.util.EntityUtils; public final class InsightsAgentHttpClient implements InsightsHttpClient { - private static final InsightsLogger logger = new SLF4JLogger(InsightsAgentHttpClient.class); + private static final InsightsLogger logger = AgentLogger.getLogger(); private static final ContentType GENERAL_CONTENT_TYPE = ContentType.create(GENERAL_MIME_TYPE); private final Supplier sslContextSupplier; private final InsightsConfiguration configuration;