From 8b857d55b2db4fea0e0f9adb095713bf1cd0a476 Mon Sep 17 00:00:00 2001 From: Jaime Wren Date: Thu, 4 Dec 2025 14:04:57 -0800 Subject: [PATCH] Prevent crashes when 3rd party loggers do not implement `setLevel`. Fixes https://github.com/flutter/flutter-intellij/issues/8631 --- CHANGELOG.md | 12 ++++++++++++ src/io/flutter/logging/PluginLogger.java | 9 ++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 988a00c42..67c6cab5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +## 88.2.0 + +### Added + +### Changed + +### Removed + +### Fixed + +- Fixed crash when using 3rd party loggers that don't implement `setLevel`. (#8631) + ## 88.1.0 ### Added diff --git a/src/io/flutter/logging/PluginLogger.java b/src/io/flutter/logging/PluginLogger.java index 116cf9768..d3120bf3f 100644 --- a/src/io/flutter/logging/PluginLogger.java +++ b/src/io/flutter/logging/PluginLogger.java @@ -46,7 +46,14 @@ public class PluginLogger { public static void updateLogLevel() { final Logger rootLoggerInstance = Logger.getInstance("io.flutter"); - rootLoggerInstance.setLevel(FlutterSettings.getInstance().isVerboseLogging() ? LogLevel.ALL : LogLevel.INFO); + try { + rootLoggerInstance.setLevel(FlutterSettings.getInstance().isVerboseLogging() ? LogLevel.ALL : LogLevel.INFO); + } + catch (Throwable e) { + // This can happen if the logger is wrapped by a 3rd party plugin that doesn't correctly implement setLevel. + // See https://github.com/flutter/flutter-intellij/issues/8631 + Logger.getInstance(PluginLogger.class).warn("Failed to set log level", e); + } } public static @NotNull Logger createLogger(@NotNull Class logClass) {