auto_reply_sync 1.0.0
auto_reply_sync: ^1.0.0 copied to clipboard
In-app floating logger for Flutter — structured events, levels, search/filter, network capture, and a DevTools-style overlay.
auto_reply_sync #
In-app floating logger for Flutter — structured events, levels, search/filter, easy network capture, and a DevTools-style overlay.
How to view the floating log icon #
Wrap your app (or any screen) with AutoReplyLoggerViewer. A draggable terminal FAB appears on top of your UI.
import 'package:auto_reply_sync/auto_reply_sync.dart';
import 'package:flutter/material.dart';
void main() {
logger.configure(const LoggerConfig(enabled: true, maxEntries: 500));
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: AutoReplyLoggerViewer(
// Optional: fabColor, backgroundColor, showFab: false
child: const HomePage(),
),
);
}
}
Using the overlay #
- Open — tap the floating terminal icon (drag it to reposition).
- Browse logs — newest entries appear in the bottom panel.
- Search — type in the search field.
- Filter — tap the filter icon to select log levels and/or Network only.
- API detail — tap a network row for Timing / Headers / Payload / Preview / Response (copy cURL from the toolbar).
- Toolbar — pause/resume logging, clear, export (clipboard), expand/collapse, close.
Emit logs from anywhere:
logger.i('Hello', source: 'HomePage');
logger.e('Failed', source: 'Api', properties: {'status': 500});
Try the demo:
cd example && flutter run
Network map → one-line wiring #
NETWORKING
├── REST
│ ├── http → LoggingHttpClient()
│ ├── Dio → AutoReplyDioInterceptor()
│ ├── Retrofit → RetrofitNetwork.interceptor()
│ ├── Chopper → AutoReplyChopperInterceptor() / ChopperNetwork.interceptor()
│ └── OpenAPI → OpenApiNetwork.dioInterceptor() or OpenApiNetwork.httpClient()
├── GraphQL → GraphQlNetwork.trace(...) / NetworkLogger.graphql(...)
├── gRPC → NetworkLogger.grpc(...)
├── WebSocket → RealtimeNetwork.ws(...)
└── SSE → RealtimeNetwork.listenSse(...) / NetworkLogger.sse(...)
Dio #
final dio = Dio()..interceptors.add(AutoReplyDioInterceptor());
Retrofit (package:retrofit) #
final dio = Dio()..interceptors.add(RetrofitNetwork.interceptor());
final api = RestClient(dio);
Chopper #
final chopper = ChopperClient(
baseUrl: Uri.parse('https://api.example.com'),
interceptors: [ChopperNetwork.interceptor()],
);
OpenAPI / Swagger generated clients #
// Dio-based generator
final dio = Dio()..interceptors.add(OpenApiNetwork.dioInterceptor());
// http-based generator
final api = DefaultApi(OpenApiNetwork.httpClient());
http package #
final client = LoggingHttpClient();
Open the floating terminal and tap NET. Detail sheet can Copy cURL. Stack shows as retrofit / chopper / openapi in log properties.