talker_flutter
v4.5.1Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc.
Package archive: https://pubdev.letsnova.ru/api/archives/talker_flutter/4.5.1.tar.gz
dart pub add talker_flutterReadme
Advanced error handler and logger for dart and flutter apps
Log your app actions, catch and handle exceptions and errors, show alerts and share log reports
Show some β€οΈ and star the repo to support the project!
For better understanding how it works check Web Demo page
Motivation
π The main goal of the project is provide ability to understand where the error occurs in a shortest possible time
β
Compatible with any state managements
β
Works with any crash reporting tool (Firebase Crashlytics, Sentry, custom tools, etc.)
β
Logs UI output of Flutter app on the screen
β
Allows sharing and saving logs history and error crash reports
β
Displays alerts for UI exceptions.
β
Built-in support for dio HTTP logs
β
Built-in support for BLoC logs
β
Built-in support for Riverpod logs
β
Check all features
Packages
Talker is designed for any level of customization.
| Package | Version | Description |
|---|---|---|
| talker | Main dart package for logging and error handling | |
| talker_flutter | Flutter extensions for talker Colored Flutter app logs (iOS and Android), logs list screen, showing error messages at UI out of the box, route observer, etc |
|
| talker_logger | Customizable pretty logger for dart/flutter apps | |
| talker_dio_logger | Best logger for dio http calls | |
| talker_bloc_logger | Best logger for BLoC state management library | |
| talker_riverpod_logger | Best logger for Riverpod state management library | |
| talker_http_logger | Best logger for http package |
Table of contents
- Motivation
- Packages
- Talker
- Talker Flutter
- Integrations
- Talker Dio Logger
- Talker BLoC Logger
- Talker Riverpod Logger
- Crashlytics integration
- Features list
- Coverage
- Additional information
- Contributors
Talker
Get Started
Follow these steps to the coolest experience in error handling
Add dependency
dependencies:
talker: ^4.5.1
Easy to use
You can use Talker instance everywhere in your app
Simple and concise syntax will help you with this
import 'package:talker/talker.dart';
final talker = Talker();
/// Just logs
talker.warning('The pizza is over π₯');
talker.debug('Thinking about order new one π€');
// Handling Exception's and Error's
try {
throw Exception('The restaurant is closed β');
} catch (e, st) {
talker.handle(e, st);
}
/// Just logs
talker.info('Ordering from other restaurant...');
talker.info('Payment started...');
talker.good('Payment completed. Waiting for pizza π');
More examples you can get there
βοΈ Customization
Configure the error handler and logger for yourself
final talker = Talker(
settings: const TalkerSettings(
/// You can enable/disable all talker processes with this field
enabled: true,
/// You can enable/disable saving logs data in history
useHistory: true,
/// Length of history that saving logs data
maxHistoryItems: 100,
/// You can enable/disable console logs
useConsoleLogs: true,
),
/// Setup your implementation of logger
logger: TalkerLogger(),
///etc...
);
More examples you can get here
Custom logs
With Talker you can create your custom log message types.
And you have full customization control over them!
class YourCustomLog extends TalkerLog {
YourCustomLog(String message) : super(message);
@override
String get title => 'Custom';
@override
String? get key => 'custom_log_key';
@override
AnsiPen get pen => AnsiPen()..xterm(121);
}
final talker = Talker();
talker.logCustom(YourCustomLog('Something like your own service message'));
Change log colors
Starting from version 4.0.0, you have the ability to fully customize all logs colors. You can set your own color for any type of logs. For example, you can choose red for HTTP responses and green for errorsβwhatever suits your preference π
The map is now structured as {String: AnsiPen}.
String Key
The String key serves as an identifier for a specific log type (e.g., HTTP, error, info, etc.).
- Default log types are accessible via the
keyfield in theTalkerLogTypeenum. - Developers can also define custom log pen by providing their own string keys, like
'custom_log_key'.
final talker = Talker(
settings: TalkerSettings(
colors: {
TalkerLogType.httpResponse.key: AnsiPen()..red(),
TalkerLogType.error.key: AnsiPen()..green(),
'custom_log_key': AnsiPen()..yellow(),
// Other colors...
},
),
);
Talker have default color scheme. You can check it in TalkerSettings class
Change log titles
Starting from version 4.0.0, you have the ability to fully customize all logs titles. You can set your own title for any type of logs.
The map is now structured as {String: AnsiPen}.
String Key
The String key serves as an identifier for a specific log type (e.g., HTTP, error, info, etc.).
- Default log types are accessible via the
keyfield in theTalkerLogTypeenum. - Developers can also define custom log title by providing their own string keys, like
'custom_log_key'.
final talker = Talker(
settings: TalkerSettings(
titles: {
TalkerLogType.exception.key: 'Whatever you want',
TalkerLogType.error.key: 'E',
TalkerLogType.info.key: 'i',
'custom_log_key': 'New custom title',
// Other titles...
},
),
);
Talker have default titles scheme. You can check it in TalkerSettings class
TalkerObserver
TalkerObserver is a mechanism that allows observing what is happening inside Talker from the outside.
import 'package:talker/talker.dart';
class ExampleTalkerObserver extends TalkerObserver {
ExampleTalkerObserver();
@override
void onError(TalkerError err) {
/// Send data to your error tracking system like Sentry or backend
super.onError(err);
}
@override
void onException(TalkerException exception) {
/// Send Exception to your error tracking system like Sentry or backend
super.onException(exception);
}
@override
void onLog(TalkerDataInterface log) {
/// Send log message to Grafana or backend
super.onLog(log);
}
}
final observer = ExampleTalkerObserver();
final talker = Talker(observer: observer);
You can use it to transmit data about logs to external sources such as Crashlytics, Sentry, Grafana, or your own analytics service, etc.
Talker Flutter
Get Started Flutter
Talker Flutter is an extension for the Dart Talker package that adds extra functionality to make it easier for you to handle logs, errors, and exceptions in your Flutter applications.
Add dependency
dependencies:
talker_flutter: ^4.5.1
Setup
import 'package:talker_flutter/talker_flutter.dart';
final talker = TalkerFlutter.init();
// Handle exceptions and errors
try {
// your code...
} catch (e, st) {
talker.handle(e, st, 'Exception with');
}
// Log your app info
talker.info('App is started');
talker.critical('β Houston, we have a problem!');
talker.error('π¨ The service is not available');
βοΈ Log messages integrity
Most of flutter logging packages either cut messages in the console, or cant dope colored messages in the iOS console. But Talker is not one of them...
Talker uses the optimal method for logging depending on the Operating system on which it runs
But to do this, you need to use the initialization given in the example. Only with TalkerFlutter.init()
As result of this method you will get the same instance of Talker as when creating it through the Talker() constructor but with logging default initialization
TalkerScreen
Often you need to check what happening in the application when there is no console at hand.
There is a TalkerScreen widget from talker_flutter package for this situations.
For better understanding how it works check Web Demo page
| TalkerScreen | TalkerFilter | TalkerActions | TalkerSettings |
Easy to use
You can use TalkerScreen everywhere in your app
At Screen, BottomSheet, ModalDialog, etc...
import 'package:talker_flutter/talker_flutter.dart';
final talker = TalkerFlutter.init();
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => TalkerScreen(talker: talker),
)
);
See more in TalkerScreen usage example
Customization
Starting from version 4.0.0, you have the ability to fully customize your TalkerScreen display. You can set your own color for any type of logs. For example, you can choose red for HTTP responses and green for errorsβwhatever suits your preference π
How to set custom colors ?
To set your custom colors, you need to pass a TalkerScreenTheme object to the TalkerScreen constructor, with a Map containing the desired colors.
The Map is structured as {log type: color}. TalkerLogType is an identifier for a specific log type (e.g., HTTP, error, info, etc.), and each log type in Talker has its own field in the enum.
import 'package:talker_flutter/talker_flutter.dart';
final talker = TalkerFlutter.init();
TalkerScreen(
talker: talker,
theme: const TalkerScreenTheme(
/// Your custom log colors
logColors: {
TalkerLogType.httpResponse.key: Color(0xFF26FF3C),
TalkerLogType.error.key: Colors.redAccent,
TalkerLogType.info.key: Color.fromARGB(255, 0, 255, 247),
YourCustomLog.logKey: Colors.green,
},
)
)
TalkerScreenTheme
You can set custom backagroud, card and text colors for TalkerScreen with TalkerScreenTheme
TalkerScreenTheme(
cardColor: Colors.grey[700]!,
backgroundColor: Colors.grey[800]!,
textColor: Colors.white,
logColors: {
/// Your logs colors...
},
)
TalkerRouteObserver
Observer for a navigator.
If you want to keep a record of page transitions in your application, you've found what you're looking for.
You can use TalkerRouteObserver with any routing package
From auto_route to basic Flutter Navigator
Navigator
final talker = Talker();
MaterialApp(
navigatorObservers: [
TalkerRouteObserver(talker),
],
)
auto_route
final talker = Talker();
MaterialApp.router(
routerDelegate: AutoRouterDelegate(
appRouter,
navigatorObservers: () => [
TalkerRouteObserver(talker),
],
),
),
auto_route v7
final talker = Talker();
MaterialApp.router(
routerConfig: _appRouter.config(
navigatorObservers: () => [
TalkerRouteObserver(talker),
],
),
),
go_router
final talker = Talker();
GoRouter(
observers: [TalkerRouteObserver(talker)],
)
TalkerMonitor
If you want to check the status of your application in a short time
TalkerMonitor will be the best solution for you
Monitor is a filtered quick information about http requests, exceptions, errors, warnings, etc... count
You will find Monitor at the TalkerScreen page
For better understanding how it works check Web Demo page
TalkerWrapper
In addition talker_flutter is able to show default and custom error messages and another status messages via TalkerWrapper
import 'package:talker_flutter/talker_flutter.dart';
final talker = TalkerFlutter.init();
TalkerWrapper(
talker: talker,
options: const TalkerWrapperOptions(
enableErrorAlerts: true,
),
child: /// Application or the screen where you need to show messages
),
More Features And Examples
Custom UI error messages
In order to understand in more details - you can check this article "Showing Flutter custom error messages"
TalkerWrapper usage example
ShopApp example
See full application example with BLoC and navigation here
The talker_flutter package have a lot of another widgets like TalkerBuilder, TalkerListener, etc. You can find all of them in code documentation.
Integrations
In addition to the basic functionality, talker was conceived as a tool for creating lightweight loggers for the main activities of your application
You can use ready out of the box packages like talker_dio_logger, talker_bloc_logger and talker_riverpod_logger or create your own packages.
Talker Dio Logger
Lightweight, simple and pretty solution for logging if your app use dio as http-client
This is how the logs of your http requests will look in the console

Getting started
Follow these steps to use this package
Add dependency
dependencies:
talker_dio_logger: ^4.5.1
Usage
Just add TalkerDioLogger to your dio instance and it will work
final dio = Dio();
dio.interceptors.add(
TalkerDioLogger(
settings: const TalkerDioLoggerSettings(
printRequestHeaders: true,
printResponseHeaders: true,
printResponseMessage: true,
),
),
);
Customization
To provide hight usage exp here are a lot of settings and customization fields in TalkerDioLoggerSettings. You can setup all wat you want. For example:
Off/on http request or reposnse logs
You can toggle reponse / request printing and headers including
final dio = Dio();
dio.interceptors.add(
TalkerDioLogger(
settings: const TalkerDioLoggerSettings(
// All http responses enabled for console logging
printResponseData: true,
// All http requests disabled for console logging
printRequestData: false,
// Reposnse logs including http - headers
printResponseHeaders: true,
// Request logs without http - headersa
printRequestHeaders: false,
),
),
);
Change http logs colors
Setup your custom http-log colors. You can set color for requests, responses and errors in TalkerDioLoggerSettings
TalkerDioLoggerSettings(
// Blue http requests logs in console
requestPen: AnsiPen()..blue(),
// Green http responses logs in console
responsePen: AnsiPen()..green(),
// Error http logs in console
errorPen: AnsiPen()..red(),
);
Filter http logs
For example if your app has a private functionality and you don't need to store this functionality logs in talker - you can use filters
TalkerDioLoggerSettings(
// All http request without "/secure" in path will be printed in console
requestFilter: (RequestOptions options) => !options.path.contains('/secure'),
// All http responses with status codes different than 301 will be printed in console
responseFilter: (response) => response.statusCode != 301,
)
Using with Talker
You can add your talker instance for TalkerDioLogger if your app already uses Talker. In this case, all logs and errors will fall into your unified tracking system
final talker = Talker();
final dio = Dio();
dio.interceptors.add(TalkerDioLogger(talker: talker));
Talker BLoC Logger
Lightweight, simple and pretty solution for logging if your app use BLoC as state management
This is how the logs of your BLoC's event calling and state emits will look in the console

Getting started
Follow these steps to use this package
Add dependency
dependencies:
talker_bloc_logger: ^4.5.1
Usage
Just set TalkerBlocObserver as Bloc.observer field and it will work
import 'package:talker_bloc_observer/talker_bloc_observer.dart';
Bloc.observer = TalkerBlocObserver();
Customization
To provide hight usage exp here are a lot of settings and customization fields in TalkerBlocLoggerSettings. You can setup all wat you want. For example:
Off/on events, transitions, changes, creation, close
You can toggle all bloc event types printing
Bloc.observer = TalkerBlocObserver(
settings: TalkerBlocLoggerSettings(
enabled: true,
printChanges: true,
printClosings: true,
printCreations: true,
printEvents: true,
printTransitions: true,
),
);
Full/truncated state and event data
You can choose to have the logs of events and states in the BLoC displayed in the console in either full or truncated form
Bloc.observer = TalkerBlocObserver(
settings: TalkerBlocLoggerSettings(
printEventFullData: false,
printStateFullData: false,
),
);
Filter bloc logs
You can output logs to the console for specific events and states only, using a filter
Bloc.observer = TalkerBlocObserver(
settings: TalkerBlocLoggerSettings(
// If you want log only AuthBloc transitions
transitionFilter: (bloc, transition) =>
bloc.runtimeType.toString() == 'AuthBloc',
// If you want log only AuthBloc events
eventFilter: (bloc, event) => bloc.runtimeType.toString() == 'AuthBloc',
),
);
Using with Talker!
You can add your talker instance for TalkerBlocLogger if your Appication already uses Talker.
In this case, all logs and errors will fall into your unified tracking system
import 'package:talker_bloc_observer/talker_bloc_observer.dart';
import 'package:talker/talker.dart';
final talker = Talker();
Bloc.observer = TalkerBlocObserver(talker: talker);
Talker Riverpod Logger
Lightweight, simple and pretty solution for logging if your app use Riverpod as state management
This is how the logs of your Riverpod's event calling and state emits will look in the console

Getting started
Follow these steps to use this package
Add dependency
dependencies:
talker_riverpod_logger: ^4.5.1
Usage
Just pass TalkerRiverpodObserver to either ProviderScope or ProviderContainer and it will work
import 'package:talker_riverpod_observer/talker_riverpod_observer.dart';
runApp(
ProviderScope(
observers: [
TalkerRiverpodObserver(),
],
child: MyApp(),
)
);
or
import 'package:talker_riverpod_observer/talker_riverpod_observer.dart';
final container = ProviderContainer(
observers: [
TalkerRiverpodObserver(),
],
);
Customization
To provide hight usage exp here are a lot of settings and customization fields in TalkerRiverpodLoggerSettings. You can setup all wat you want. For example:
Off/on events, add, update, dispose, fail
You can toggle all riverpod event types printing
TalkerRiverpodObserver(
settings: TalkerRiverpodLoggerSettings(
enabled: true,
printProviderAdded: true,
printProviderUpdated: true,
printProviderDisposed: true,
printProviderFailed: true,
),
)
Full/truncated state data
You can choose to have the logs of states in the Riverpod displayed in the console in either full or truncated form
TalkerRiverpodObserver(
settings: TalkerRiverpodLoggerSettings(
printStateFullData: false,
),
)
Filter Riverpod logs
You can output logs to the console for specific events only, using a filter
TalkerRiverpodObserver(
settings: TalkerRiverpodLoggerSettings(
// If you want log only AuthProvider events
eventFilter: (provider) => provider.runtimeType == 'AuthProvider<User>',
),
)
Using with Talker!
You can add your talker instance for TalkerRiverpodLogger if your Appication already uses Talker.
In this case, all logs and errors will fall into your unified tracking system
import 'package:talker_riverpod_observer/talker_riverpod_observer.dart';
import 'package:talker/talker.dart';
final talker = Talker();
runApp(
ProviderScope(
observers: [
TalkerRiverpodObserver(
talker: talker,
),
],
child: MyApp(),
)
);
or
import 'package:talker_riverpod_observer/talker_riverpod_observer.dart';
import 'package:talker/talker.dart';
final talker = Talker();
final container = ProviderContainer(
observers: [
TalkerRiverpodObserver(
talker: talker,
),
],
);
Crashlytics integration
If you add CrashlyticsTalkerObserver to your application, you will receive notifications about all application errors in the Crashlytics dashboard.
Additionally, you can configure it to send only specific errors to Crashlytics from within TalkerObserver.
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
import 'package:talker/talker.dart';
class CrashlyticsTalkerObserver extends TalkerObserver {
CrashlyticsTalkerObserver();
@override
void onError(err) {
FirebaseCrashlytics.instance.recordError(
err.error,
err.stackTrace,
reason: err.message,
);
}
@override
void onException(err) {
FirebaseCrashlytics.instance.recordError(
err.exception,
err.stackTrace,
reason: err.message,
);
}
}
final crashlyticsTalkerObserver = CrashlyticsTalkerObserver();
final talker = Talker(observer: crashlyticsTalkerObserver);
Features list
β Logging
-
β Filtering
-
β Formatting
-
β Color logs
-
β LogLevels (info, verbose, warning, debug, error, critical, fine, good)
-
β Customization for filtering, formatting and colors
-
π§ Separation from system's and another flutter logs
-
π§ Collapsible feature for huge logs
-
π§ Logs grouping
β Errors handling
- β Errors and Exceptions identification
- β StackTrace
- π§ Error level identification
β Flutter
-
β Application logs sharing
-
β HTTP cals logging
-
β TalkerScreen - Showing logs list in Flutter app UI
-
β TalkerMonitor - A short summary of your application status. How much errors, how much warnings in Flutter app UI
-
β TalkerRouteObserver - router logging (which screen is opened, which is closed)
-
β TalkerWrapper - Showing errors and exceptions messages at UI
-
β TalkerListener - Listen logs data at application UI
-
β TalkerBuilder - UI builder to Logs List showing custom UI
-
β Android/Windows/Web application logs colors
-
β iOS/MacOS application logs colors
-
β Talker configuration chnages from TalkerFlutter
β Logs and errors history saving
β TalkerObserver - handle all logs, errors, exceptions for integrations (Sentry, Crashlytics)
Coverage
Error handling is a very important task
You need to choose carefully if you want to use a package for exceptions handling solution
Therefore, the project is 100% covered by tests
Additional information
The project is under development and ready for your pull-requests and issues π
Thank you for support β€οΈ
Contributors
For help getting started with π Flutter, view online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
Changelog
4.5.1
- [talker_flutter] Fix mapping LogColors to Flutter Color (Logs screen)
4.5.0
More Flexible Interaction with Custom Logs
- BREAKING [talker] Change the type of
colorsparameter in theTalkerSettingsclass fromMap<TalkerLogType, AnsiPen>?toMap<String, AnsiPen>?. Custom colors must now use a string key for log types. - BREAKING [talker] Change the type of
titlesparameter in theTalkerSettingsclass fromMap<TalkerLogType, String>?toMap<String, String>?. Custom titles must now use a string key for log types. - BREAKING [talker_flutter] Change the type of
colorsparameter in the TalkerScreenTheme class fromMap<TalkerLogType, Colors>?toMap<String, Colors>?. Custom colors must now use a string key for log types. - [talker] Add new tests and updated existing ones.
- [talker] Update the documentation for log customization.
Thanks to yelmuratoff
4.4.7
- [talker_dio_logger] Make encoder constant private
4.4.6
- [talker] Reanme logTyped method to logCustom
- [talker] Add Deprecated annotation for logTyped method
4.4.5
- [talker_logger] Add enable option field to control log output (on talker_logger level)
Thanks to weitsai
4.4.4
- [talker_dio_logger] Add enable option field to control log output (on talker_dio_logger level)
Thanks to weitsai
4.4.3
- [talker_http_logger] Bump http_interceptor package version to 2.0.0
4.4.2
- [talker] Fix provide pen color field in log() method
- [talker] Android dependecies actualization and bug fixing in example app code
Thanks to HE-LU and venkat9507
4.4.1
- [talker_flutter] Bump share_plus version to 10.0.1
- [talker_flutter] Bump path_provider version to 2.1.4
4.4.0
- [talker] Stable
TimeFormatrelease (Support of custom time formatting for every talker package) - [talker_riverpod_logger] Bump version to talker common versions system
4.3.5
- [talker_bloc_logger] Setup common time format from talker settings for Bloc logs
4.3.4
- [talker_riverpod_logger] Duplicated state logs fixes
Thanks to ArinFaraj
4.3.3
- [talker_bloc_logger] Fix bloc logs TimeFormat
Thanks to Mooyeee
4.3.2
- [talker_riverpod_logger] Fix issue with display time inside riverpod package
Thanks to yelmuratoff
4.3.1
- [talker_flutter] Fix showing times on FlutterScreen cards
Thanks to fieldOfView
4.3.0
- [talker_flutter] Custom logs timestamp formattings
Thanks to abdelaziz-mahdy
4.2.4
- [talker_riverpod_logger] Print missing data on TalkerScreen
Thanks to yelmuratoff
4.2.3
- [talker_riverpod_logger] Include Provider's name in logs output
Thanks to KoheiKanagu
4.2.2
- [talker_flutter] Support for Flutter 3.22, fix new version deprecations
4.2.1
- [talker_dio_logger] Add missing error setting for TalkerDioLoggerSettings:
printErrorDataprintErrorHeadersprintErrorMessageerrorFilter
Thanks to Ali1Ammar
4.2.0
- Initial release of talker_riverpod_logger
Thanks to jbdujardin
4.1.5
- [talker_flutter] Bump share_plus version to 9.0.0
4.1.4
- [talker_logger] Fix default logs printing method
4.1.3
- [talker_flutter] Bump share_plus version to 8.0.2
- [talker_flutter] Bump path_provider version to 2.1.2
4.1.2
- [talker_flutter] Bump group_button version to 5.3.4
4.1.1
- Fix TalkerLog.generateTextMessage exception info missing
Thanks to heiha100
4.1.0
- Fix Exception and StackTrace is ignored for logs
- Fix typo at the beginning README.md
- Fix TalkerScreen log type selector text colors
4.0.3
- Support web for talker and talker_logger
- Update talker_bloc_logger README.md
Thanks to melodysdreamj and MiladAtef
4.0.2
- Fix inconsistent colors at TalkerScreen
- Add LogColors typedef in TalkerTheme
(Map<TalkerLogType, Color>)
Thanks to XanderD99
4.0.1
- Fix talker configure method problems issue #186
Thanks to K1yoshiSho
4.0.0
-
Add ability to customize colors and titles of any Talker logs
-
Add ability to customize colors of any logs in TalkerScreen UI
-
Add TalkerLogType enum for clear differentiation of logs by types.
-
Update TalkerScreen UI (The interface is now even more user-friendly)
-
Huge documentation update
-
Make 100% test coverage of talker_bloc_logger and talker_dio_logger
-
Add expand / collapse ability for one log card
-
Packages versions synchronization (Now the versions of all core libraries will be identical)
-
BREAKING TalkerDataInterface deleted (Now base data class is TalkerData)
-
Fix: Text color not always visible issue #174
-
Add custom title format issue #170
-
Fix: Logger not resets log color issue #86
Check more details in documentation
4.0.0-dev.6
- Make 100% tests coverage
- Update example UI
- Add custom log titles documentation
- Fix TalkerScreen log colors setup
- Fix TalkerScreenTheme textColor providing
4.0.0-dev.5
- Huge documentation update
- Update talker_flutter styles
- Add expand / collapse ability for one log card
- Add colors customization examples
4.0.0-dev.4
- Add new tests to make 100% coverage
- Fix linter issues
4.0.0-dev.3
- Update talker_logger settings setup method
4.0.0-dev.2
- Fix types and remove unused code
4.0.0-dev.1
- First version with Logs keys implementation
- BREAKING TalkerDataInterface deleted
- Add new talker colors customization
- Talker Actions UI updated
3.6.0
- Add ability to setup custom history implementation
- Add abstract class TalkerHistory
- Add DefaultTalkerHistory implementation with basic (previous) functionality by default
Thanks to Ppito
3.5.7
- Add package utils export
Thanks to Ppito
3.5.6
talker_bloc_logger
- Add onCreate, onClose logs
- Add printClosings printCreations settings fields (false by default)
Thanks to cem256
3.5.5
- Add ability to set own ErrorHandler for talker instance
Thanks to Ppito
3.5.4
- Bump share_plus package to 7.2.1
3.5.3
- Fix the overflow issue of Talker Monitor
Thanks to Kabak-Siarhei
3.5.2
- Bump talker version to 3.1.4
- Pad minutes and seconds for DateTime formatter
3.5.1
- Add TalkerRouteObsever documentatuion
- Fix share_plus version 7.1.0
3.5.0
- Update internal packages versions
-
- Bump share_plus package to 8.0.0
-
- Bump path_provider package to 2.1.1
3.4.0
- Bump share_plus package to 7.1.0
3.3.1
- Update README docs and examples
3.3.0
- Support web platform downloading logs
Thanks to Kabak-Siarhei
3.2.10
- Add TalkerScreenTheme cardColor customization field
3.2.9
- Fix appBarleading showing
3.2.8
- Add appBarleading field to TalkerScreen and TalkerView constructor
3.2.7
- Fix TalkerWrapper error looping
Thanks to s0nerik
3.2.6
- Fix appbar icon colors
- Rename part of internal classes
3.2.5
- Make controller, theme, appBarTitle not required for TalkerView
- Make TalkerScreen Stateless instead of Stateful
3.2.4
- Fix AppBar title text color
3.2.3
- Add TalkerView in package exports
3.2.2
- Fix logs expanding and collapsing in TalkerView
3.2.1
- Refactor TalkerScreen decomposition
- Extract TalkerView, TalkerViewAppBar
3.2.0
- Rename (fix typo) field backgroudColor -> backgroundColor
- Fix internal and docs typos
- Update talker version to 3.1.0
- Update group_button version to 5.3.2
Thanks to wcoder
3.1.12
- Remove using paddingOf to support old flutter versions
3.1.11
- refactor and enhance UI
- Fix typo bacgroundColor -> backgroundColor in SnackbarContent constructor
- Add the dismissButtonText Widget to SnackbarContent
- Add the dismissButton Widget to SnackbarContent
- Add the titleTextStyle TextStyle to SnackbarContent
- Add the messageTextStyle TextStyle to SnackbarContent
- Add an onPressed callback to SnackbarContent
- Use paddingOf instead size this method will cause the given [context] to rebuild any time that the [MediaQueryData.padding] property of the ancestor [MediaQuery] changes. Checkout the following PR for more informations about MediaQuery as InheritedModel
Thanks to jnelle
3.1.10
- Update talker version to 3.0.5
3.1.9
- Add topics in pubspec.yaml
3.1.8
- Update talker version to 3.0.4
3.1.7
- Set the exact size of the text in the search TextField
- Fix large text in search bar
3.1.6
- Update talker version to 3.0.2
3.1.5
- Fix typos in package documentation
Thanks to vicenterusso
3.1.4
- Fix TalkerScreen scrolling
3.1.3
- Update sdk version to '>=2.15.0 <4.0.0'
3.1.2
- Make fixed text size in talker data list
3.1.1
- Fix TalkerFlutter output initialization
3.1.0
- Add runTalkerZonedGuarded method to setup handle all app unhandled exceptions with one method
Thanks to zezo357
3.0.0
Lighter, simpler, more powerful
- Big UI/UX updates. Interacting with logs from the application has become even easier now.
- Rename TalkerHistoryBuilder -> TalkerBuilder
- Remove old TalkerBuilder
- Remove FlutterTalkerDataInterface and subclasses instead of TalkerDataInterface
- Remove iconsColor field from TalkerScreenTheme
- Remove Filter bottom sheet (now this functionality is avaliable at TalkerScreen)
3.0.0-dev.12
- Add TalkerObserver in TalkerFlutter extension constructor
3.0.0-dev.11
- Update talker version to 3.0.0-dev.13
3.0.0-dev.10
- Update talker version to 3.0.0-dev.11
- Delete LogLevel.fine deprecation usage in extensions
3.0.0-dev.9
- Update TalkerFlutter extension (Remove deprecated fileds)
- Update talker version to 3.0.0-dev.10
3.0.0-dev.8
- Update README, and pubspec.yaml docs
3.0.0-dev.7
- Update talker version to ^3.0.0-dev.8
- Fix TalkerFlutter logs colors for http and bloc logs
3.0.0-dev.6
- Update TalkerScreen UI
- Fix AppBar SafeArea
3.0.0-dev.5
- Rename TalkerHistoryBuilder -> TalkerBuilder
- Remove old TalkerBuilder
3.0.0-dev.4
- Make loggerSettings, loggerFilter, loggerFormater, loggerOutput Deprecated Currently you can setup this felds and all other logger settings only in TalkerLogger constructor
3.0.0-dev.3
- Update Talker screen UI
- Remove Filter bottom sheet (now this functionality is avaliable at TalkerScreen)
- Remove iconsColor field from TalkerScreenTheme
3.0.0-dev.2
- Fix settings updates checking in UI
- Update example
3.0.0-dev.1
- Rename TalkerMonitorItem -> TalkerMonitorCard
- Remove FlutterTalkerDataInterface and subclasses
- Remove talker_dio_logger depencency
- Update talker version to 3.0.0-dev.6
- Update internal packages versions
2.4.3
- FEAT: update path_provider version to 2.0.13
2.4.2
- FIX: logs sharing on windows devices
Thanks to zezo357
2.4.1
- FEAT: Update talker_dio_logger to 1.3.0 and internal packages
2.4.0
- FEAT: Add settings bottom sheet on main screen
- FEAT: Add talker_dio_logger settings on settings bottom sheet
- FEAT: Make great UI improvements
- FEAT: Setup talker_dio_logger addon functionality
- FEAT: Make logs reversed as default
2.3.1
- FEAT: Add initial TalkerSettings screen to interact with Talker configuration
2.3.0
- FEAT: Add filters and fast actions for http calls monitor
- FEAT: Expanded size of log item click zone
2.2.1
- FIX: Fix color reset in console
Thnaks for westito
2.2.0
- FEAT: Create FlutterTalker extensions for enable iOS/ MacOS colored logging
- FEAT: Implement TalkerMonitor for sorting, warning, infos, verbose errors
- FEAT: Implement Talker Http Monitor for http request-response analytics and monitoring
- FEAT: Web demo example avaliable at frezyx.github.io/talker
2.2.0-dev.1
- INFO: Init prerelease version
- INFO: Add web demo example
2.1.1-dev.3
- FEAT: TalkerMonitor sorting, warning, infos, verbose errors
- FEAT: Talker Http Monitor for http request-response analytics and monitoring
2.1.1-dev.2
- FEAT: Implement initial TalkerMonitor functionality
2.1.1-dev.1
- FEAT: Create FlutterTalker extensions for enable iOS/ MacOS colored logging
2.1.1
- FIX: TalkerFilter Cannot add to an unmodifiable list issue
Thnaks for ProjectAJ14
2.1.0+1
- INFO: Improve README.md
- INFO: Improve pubspec.yaml
2.1.0
- FEAT: Implement filter for Talker constructor. Now you can filter data by logger and by talker instance as default.
2.0.6
- FIX: Update internal packages
2.0.5
- FIX: Analyzer issues about shareFiles method deprecation
2.0.4
- FIX: Analyzer issues about shareFiles method deprecation
2.0.3
- FIX: Talker logs card gaps
2.0.2
- FIX: Ignore routes with null settings.name in TalkerRouteObserver
2.0.1
- FIX: Logs text generation for copy and share (save to file) methods
2.0.0
- FEAT: Update TalkerScreen actions UI
- FEAT: Implement logs file sharing
- FEAT: Update logs filter UI
- INFO: Code base refactoring
- Huge Talker update See more in releases
1.7.1
- FIX: FlutterTalkerException, FlutterTalkerError, FlutterTalkerLog now implements FlutterTalkerDataInterface
1.7.0
- INFO: HaveFlutterColorInterface -> TalkerFlutterAdapterInterface
- FEAT: Implement generateFlutterTextMessage method for FlutterTalkerDataInterface, FlutterTalkerLog, FlutterTalkerError, FlutterTalkerException classes
Now you can extend your flutter app logs.
- generateFlutterTextMessage used in TalkerScreen (UI list of logs)
- generateTextMessage used in console logs and history
1.6.0
- FIX: Logs cutting by flutter via print method. Now Talker constructor have output filed to provide callback. For flutter applications, you need to pass debugPrint as output method See more in talker_flutter initialization on project README.md
- INFO: Update talker to 1.3.0 version
1.5.1
- INFO: Huge README update
- INFO: Update talker to 1.2.0 version
1.5.0
- FEAT: Implement TalkerHistoryBuilder widget to create your own custom designed logs UI screen
- FEAT: Implement TalkerBuilder widget to create your own custom designed screen with last log message showing
- INFO: Update talker to 1.1.1 version
1.4.2
-
INFO: Add TalkerScreen appBarTitle field
Thanks to Khaoz-Topsy
1.4.1
- INFO: Add documentation for TalkerWrapper
1.4.0
- FEAT: Implement TalkerWrapper widget (to showing snackbars)
- FEAT: Implement base error messages showing in UI (for user)
1.3.0
talker_logger updates:
- FEAT: Implement ExtendedLoggerFormatter
- FEAT: Upgrade ColoredLoggerFormatter
- FIX: Typo Formater -> Formatter
1.2.0
-
FEAT Add default ordering setting for logs at TalkerScreen
Thanks to jirehcwe
1.1.0
- FEAT Implement TalkerListener widget to handle talker data stream
1.0.0
First stable release! π
0.12.0
- INFO Update talker version to 0.12.0
0.11.0
- INFO Update talker version to 0.11.0
0.10.0
- FEAT Create extended example and base example
- FIX Make refactor in internal UI code
- FIX Fix examples
- INFO Update group_button version
0.9.0
- FEAT Add expand button for hiding or revealing logs
- FEAT Update TalkerScreen log UI
- FIX Saving selected filters after sheet closing
0.8.1
- talker_logger update to 0.8.0 version
- talker_logger changes:
- INFO: Create README with documentation and examples
- FIX: Rename and refactor internal code
- INFO: Add all public entities docs
- FIX: Remove lineSymbol and maxLineWidth field from LogDetails
0.8.0
- INFO Add all package documentation
- INFO Update talker package to 0.8.0 version
0.6.0
- Update internal packages
0.5.4
- Update group_button version to 4.5.0
- Fix issue 12
0.5.3
- Update talker version to 0.7.0
0.5.2
- Fix display message parsing
0.5.1
- Update display message UI
- Update talker version to 0.6.1
0.5.0
- Implement UI filter for convenient work with the console in the application
0.4.1
- Add Flutter Colors extended Talker models
to customize colors of your UI logs
0.4.0
- Update talker version to 0.5.0
0.3.0
- Update all packages to latest version
- Fix UI coloring
0.2.2
- Update Talker version
0.2.1
- Fix Talker to TalkerInterface
0.2.0
- Add logs list copy method
- Fix log colors
0.1.0
- Initial version














