buildActions method
Optional actions to show in the console toolbar
Implementation
@override
List<Widget> buildActions(BuildContext context) {
if (FlutterDevToolkit.logger.logEntries.isEmpty) return [];
return [
IconButton(
tooltip: 'Export Logs',
icon: const Icon(Icons.share),
onPressed: () {
final logs = FlutterDevToolkit.logger.logEntries;
final exportText = const JsonEncoder.withIndent(' ').convert(
logs
.map(
(e) => {
'message': e.message,
'level': e.level.name,
'timestamp': e.timestamp.toIso8601String(),
},
)
.toList(),
);
ExportUtil.exportData(
text: exportText,
title: 'DevToolkit Logs Export',
);
},
),
IconButton(
tooltip: 'Clear Logs',
icon: const Icon(Icons.delete),
onPressed: () async {
final confirmed = await showDialog<bool>(
context: context,
builder:
(context) => AlertDialog(
title: const Text('Clear Logs?'),
content: const Text(
'This will permanently delete all log entries.',
),
actions: [
TextButton(
child: const Text('Cancel'),
onPressed: () => Navigator.pop(context, false),
),
ElevatedButton(
child: const Text('Clear'),
onPressed: () => Navigator.pop(context, true),
),
],
),
);
if (confirmed ?? false) {
FlutterDevToolkit.logger.clear();
FlutterDevToolkit.logger.log('✅ Logs cleared');
(context as Element).markNeedsBuild();
}
},
),
];
}