diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index 0a3b8a6733d..376a8720066 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart @@ -439,6 +439,9 @@ class AndroidDevice extends Device { cmd.addAll(['--ez', 'start-paused', 'true']); if (debuggingOptions.useTestFonts) cmd.addAll(['--ez', 'use-test-fonts', 'true']); + if (debuggingOptions.verboseSystemLogs) { + cmd.addAll(['--ez', '--verbose-logging', 'true']); + } } cmd.add(apk.launchActivity); final String result = (await runCheckedAsync(cmd)).stdout; diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart index b0634902dec..a00fae177d3 100644 --- a/packages/flutter_tools/lib/src/commands/run.dart +++ b/packages/flutter_tools/lib/src/commands/run.dart @@ -32,6 +32,10 @@ abstract class RunCommandBase extends FlutterCommand { negatable: false, help: 'Trace application startup, then exit, saving the trace to a file.', ) + ..addFlag('verbose-system-logs', + negatable: false, + help: 'Include verbose logging from the flutter engine.' + ) ..addOption('route', help: 'Which route to load when running the app.', ) @@ -256,6 +260,7 @@ class RunCommand extends RunCommandBase { traceSkia: argResults['trace-skia'], traceSystrace: argResults['trace-systrace'], observatoryPort: observatoryPort, + verboseSystemLogs: argResults['verbose-system-logs'], ); } } diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart index f92fc2fee3d..eb5ad6d5271 100644 --- a/packages/flutter_tools/lib/src/device.dart +++ b/packages/flutter_tools/lib/src/device.dart @@ -372,6 +372,7 @@ class DebuggingOptions { this.traceSkia = false, this.traceSystrace = false, this.useTestFonts = false, + this.verboseSystemLogs = false, this.observatoryPort, }) : debuggingEnabled = true; @@ -383,6 +384,7 @@ class DebuggingOptions { skiaDeterministicRendering = false, traceSkia = false, traceSystrace = false, + verboseSystemLogs = false, observatoryPort = null; final bool debuggingEnabled; @@ -394,6 +396,7 @@ class DebuggingOptions { final bool traceSkia; final bool traceSystrace; final bool useTestFonts; + final bool verboseSystemLogs; final int observatoryPort; bool get hasObservatoryPort => observatoryPort != null; diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart index bc0e5ae2750..cc39f139bf1 100644 --- a/packages/flutter_tools/lib/src/ios/devices.dart +++ b/packages/flutter_tools/lib/src/ios/devices.dart @@ -297,6 +297,10 @@ class IOSDevice extends Device { if (debuggingOptions.traceSkia) launchArguments.add('--trace-skia'); + if (debuggingOptions.verboseSystemLogs) { + launchArguments.add('--verbose-logging'); + } + if (platformArgs['trace-startup'] ?? false) launchArguments.add('--trace-startup');