setMinimumLogLevel method
Updates the minimum log level at runtime.
Use this to reconfigure logging after feature flags are available, e.g. from a LaunchDarkly flag during app pre-initialization.
Example:
final logger = LittleFishCore.instance.get<LoggerService>();
logger.setMinimumLogLevel(LogLevel.debug);
Implementation
@override
void setMinimumLogLevel(LogLevel level) {
try {
if (_logger == null) return;
final currentSettings = settings;
final newSettings = LoggerSettings(
minimumLogLevel: level,
enableConsoleOutput: currentSettings?.enableConsoleOutput ?? true,
enableFileOutput: currentSettings?.enableFileOutput ?? false,
printer: currentSettings?.printer ?? LoggerPrinter.simple,
);
// Update stored settings with the new level
updateSettings(newSettings);
// Preserve the old logger in case recreation fails, so we don't
// permanently lose logging capability.
final oldLogger = _logger;
_logger = null;
onInitialise(newSettings);
// If onInitialise failed silently (its own try/catch swallows errors),
// _logger will still be null — restore both the previous logger and
// settings so the reported level stays consistent with actual behaviour.
if (_logger == null) {
_logger = oldLogger;
if (currentSettings != null) {
updateSettings(currentSettings);
}
}
} catch (e) {
// Use debugPrint here as the logger itself may be in a broken state
debugPrint('DefaultLogger: failed to set minimum log level, error: $e');
}
}