diff --git a/src/main/java/dev/openfeature/sdk/FeatureProviderStateManager.java b/src/main/java/dev/openfeature/sdk/FeatureProviderStateManager.java index 5fd70221b..cbdb4d8bd 100644 --- a/src/main/java/dev/openfeature/sdk/FeatureProviderStateManager.java +++ b/src/main/java/dev/openfeature/sdk/FeatureProviderStateManager.java @@ -70,7 +70,18 @@ private void setState(ProviderState state) { } else { providerName = delegate.getMetadata().getName(); } - log.info("Provider {} transitioned from state {} to state {}", providerName, oldState, state); + logProviderStateTransition(providerName, oldState, state); + } + } + + private void logProviderStateTransition(String providerName, ProviderState oldState, ProviderState newState) { + var logMessage = "Provider {} transitioned from state {} to state {}"; + if (ProviderState.FATAL.equals(newState) || ProviderState.ERROR.equals(newState)) { + log.error(logMessage, providerName, oldState, newState); + } else if (ProviderState.ERROR.equals(oldState) || ProviderState.FATAL.equals(oldState)) { + log.info(logMessage, providerName, oldState, newState); + } else { + log.debug(logMessage, providerName, oldState, newState); } }