diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/Configuration.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/Configuration.java index daed83a2c92..3178059a3f0 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/Configuration.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/Configuration.java @@ -52,7 +52,7 @@ private static boolean isEmpty(@Nullable String str) { } public void validate() { - instrumentation.logging.getSeverity(); + instrumentation.logging.getSeverityThreshold(); preview.validate(); } @@ -220,32 +220,33 @@ public static class DatabaseMaskingConfiguration { public static class LoggingInstrumentation { public String level = "INFO"; - public Severity getSeverity() { - return getSeverity(level); + public int getSeverityThreshold() { + return getSeverityThreshold(level); } - public static Severity getSeverity(String level) { + public static int getSeverityThreshold(String level) { switch (level.toUpperCase()) { case "OFF": - return Severity.UNDEFINED_SEVERITY_NUMBER; + return Integer.MAX_VALUE; case "FATAL": + return Severity.FATAL.getSeverityNumber(); case "ERROR": case "SEVERE": - return Severity.ERROR; + return Severity.ERROR.getSeverityNumber(); case "WARN": case "WARNING": - return Severity.WARN; + return Severity.WARN.getSeverityNumber(); case "INFO": - return Severity.INFO; + return Severity.INFO.getSeverityNumber(); case "CONFIG": case "DEBUG": case "FINE": case "FINER": - return Severity.DEBUG; + return Severity.DEBUG.getSeverityNumber(); case "TRACE": case "FINEST": case "ALL": - return Severity.TRACE; + return Severity.TRACE.getSeverityNumber(); default: throw new FriendlyException( "Invalid logging instrumentation level: " + level, "Please provide a valid level."); diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/exporter/AgentLogExporter.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/exporter/AgentLogExporter.java index e4a8759e2b9..19dcae7a5e6 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/exporter/AgentLogExporter.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/exporter/AgentLogExporter.java @@ -19,7 +19,6 @@ import io.opentelemetry.api.trace.SpanContext; import io.opentelemetry.sdk.common.CompletableResultCode; import io.opentelemetry.sdk.logs.data.LogData; -import io.opentelemetry.sdk.logs.data.Severity; import io.opentelemetry.sdk.logs.export.LogExporter; import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; import java.util.Collection; @@ -38,7 +37,7 @@ public class AgentLogExporter implements LogExporter { new OperationLogger(AgentLogExporter.class, "Exporting log"); // TODO (trask) could implement this in a filtering LogExporter instead - private volatile Severity threshold; + private volatile int severityThreshold; private final SamplingOverrides logSamplingOverrides; private final SamplingOverrides exceptionSamplingOverrides; @@ -46,13 +45,13 @@ public class AgentLogExporter implements LogExporter { private final Consumer telemetryItemConsumer; public AgentLogExporter( - Severity threshold, + int severityThreshold, List logSamplingOverrides, List exceptionSamplingOverrides, LogDataMapper mapper, @Nullable QuickPulse quickPulse, BatchItemProcessor batchItemProcessor) { - this.threshold = threshold; + this.severityThreshold = severityThreshold; this.logSamplingOverrides = new SamplingOverrides(logSamplingOverrides); this.exceptionSamplingOverrides = new SamplingOverrides(exceptionSamplingOverrides); this.mapper = mapper; @@ -68,8 +67,8 @@ public AgentLogExporter( }; } - public void setThreshold(Severity threshold) { - this.threshold = threshold; + public void setSeverityThreshold(int severityThreshold) { + this.severityThreshold = severityThreshold; } @Override @@ -82,9 +81,8 @@ public CompletableResultCode export(Collection logs) { for (LogData log : logs) { logger.debug("exporting log: {}", log); try { - int severity = log.getSeverity().getSeverityNumber(); - int threshold = this.threshold.getSeverityNumber(); - if (severity < threshold) { + int severityNumber = log.getSeverity().getSeverityNumber(); + if (severityNumber < severityThreshold) { continue; } diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AzureFunctionsInitializer.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AzureFunctionsInitializer.java index 0abb691ee0b..6064817852a 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AzureFunctionsInitializer.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AzureFunctionsInitializer.java @@ -83,8 +83,8 @@ private void initialize() { setWebsiteSiteName(websiteSiteName); setSelfDiagnosticsLevel(selfDiagnosticsLevel); if (instrumentationLoggingLevel != null) { - agentLogExporter.setThreshold( - Configuration.LoggingInstrumentation.getSeverity(instrumentationLoggingLevel)); + agentLogExporter.setSeverityThreshold( + Configuration.LoggingInstrumentation.getSeverityThreshold(instrumentationLoggingLevel)); } } diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/SecondEntryPoint.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/SecondEntryPoint.java index 0af334b84eb..461cd05ca5d 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/SecondEntryPoint.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/SecondEntryPoint.java @@ -486,7 +486,7 @@ private static LogExporter createLogExporter( agentLogExporter = new AgentLogExporter( - configuration.instrumentation.logging.getSeverity(), + configuration.instrumentation.logging.getSeverityThreshold(), logSamplingOverrides, exceptionSamplingOverrides, mapper,