这是indexloc提供的服务,不要输入任何密码
Skip to content

Sync version 5.0.0-dev with master branch #400

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 39 commits into from
Jul 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
0186421
Replace TalkerLogType with TalkerKey
Frezyx Feb 18, 2025
c316454
Merge branch 'master' into f/talker-key
Frezyx Feb 23, 2025
8c31a1e
Merge branch 'master' into f/talker-key
Frezyx Feb 24, 2025
34711dc
Merge branch 'master' into f/talker-key
Frezyx Jun 7, 2025
464c9c9
Merge pull request #380 from Frezyx/f/talker-key
Frezyx Jun 7, 2025
cc220f8
Release v5.0.0-dev.1
Frezyx Jun 7, 2025
00cdcbc
Fix errors and exceptions filtering for observer
Frezyx Jun 13, 2025
35e7432
Release v5.0.0-dev.2
Frezyx Jun 18, 2025
3d05f3e
Upgrade BaseTalkerFilter class
Frezyx Jun 21, 2025
6a8cf6c
Add new key filtering tests
Frezyx Jun 21, 2025
e5b6ada
Release v5.0.0-dev.3
Frezyx Jun 21, 2025
26776a7
Replace title with keys
Frezyx Jun 21, 2025
9038f52
Remove useless files
Frezyx Jun 21, 2025
7b2dc7d
Remove addonId from dio logger
Frezyx Jul 3, 2025
d0253b1
Release v5.0.0-dev.4
Frezyx Jul 3, 2025
451d770
Update filter titles builder
Frezyx Jul 4, 2025
f239903
Remove deprecated fields
Frezyx Jul 5, 2025
f019ad8
Replace abstract TalkerFilter with BaseTalkerFilter
Frezyx Jul 5, 2025
332336b
Make talker filter public filed
Frezyx Jul 5, 2025
8ab55d4
Add talkerfilter overriding
Frezyx Jul 7, 2025
f2f003b
Add deprecated annotation to configure dio method
Frezyx Jul 7, 2025
c671aaa
Fix tests
Frezyx Jul 7, 2025
3a343d7
Update TalkerScreen UI
Frezyx Jul 7, 2025
0c1bdbe
Add enabled and disabled keys to filter
Frezyx Jul 7, 2025
d4956e4
Add key registration in settings
Frezyx Jul 7, 2025
3f910d6
Add keys registration for dio logger
Frezyx Jul 7, 2025
03184c7
Add keys registration for bloc logger
Frezyx Jul 7, 2025
af06e22
Add keys registration for http logger
Frezyx Jul 7, 2025
fd600e3
Add keys registration for riverpod logger
Frezyx Jul 7, 2025
f4b47d1
Release v5.0.0-dev.5
Frezyx Jul 7, 2025
7badcb8
Add ``FormData`` parser for request logs data
Frezyx Jul 20, 2025
df3bd7e
Release v5.0.0-dev.7
Frezyx Jul 20, 2025
71693a4
Merge branch 'master' into 5.0.0-dev
Frezyx Jul 22, 2025
43f5d7e
Upgrade http logger keys
Frezyx Jul 22, 2025
171e005
Release v5.0.0-dev.8
Frezyx Jul 22, 2025
1e8a903
Update packages/talker_logger/CHANGELOG.md
Frezyx Jul 27, 2025
885264e
Fix http logs card filtering
Frezyx Jul 27, 2025
87e73a7
Fix key filtering issue
Frezyx Jul 27, 2025
2759512
Fix typos
Frezyx Jul 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ Follow these steps to the coolest experience in error handling
### Add dependency
```yaml
dependencies:
talker: ^4.9.3
talker: ^5.0.0-dev.8
```

### Easy to use
Expand Down Expand Up @@ -336,7 +336,7 @@ Talker Flutter is an extension for the Dart Talker package that adds extra funct
### Add dependency
```yaml
dependencies:
talker_flutter: ^4.9.3
talker_flutter: ^5.0.0-dev.8
```

### Setup
Expand Down Expand Up @@ -580,7 +580,7 @@ Follow these steps to use this package
### Add dependency
```yaml
dependencies:
talker_dio_logger: ^4.9.3
talker_dio_logger: ^5.0.0-dev.8
```

### Usage
Expand Down Expand Up @@ -676,7 +676,7 @@ Follow these steps to use this package
### Add dependency
```yaml
dependencies:
talker_bloc_logger: ^4.9.3
talker_bloc_logger: ^5.0.0-dev.8
```

### Usage
Expand Down Expand Up @@ -764,7 +764,7 @@ Follow these steps to use this package
### Add dependency
```yaml
dependencies:
talker_riverpod_logger: ^4.9.3
talker_riverpod_logger: ^5.0.0-dev.8
```

### Usage
Expand Down
2 changes: 2 additions & 0 deletions examples/shop_app_example/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@
*.swp
.DS_Store
.atom/
.build/
.buildlog/
.history
.svn/
.swiftpm/
migrate_working_dir/

# IntelliJ related
Expand Down
2 changes: 1 addition & 1 deletion examples/shop_app_example/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -158,4 +158,4 @@ SPEC CHECKSUMS:

PODFILE CHECKSUM: c4c93c5f6502fe2754f48404d3594bf779584011

COCOAPODS: 1.15.2
COCOAPODS: 1.16.2
2 changes: 1 addition & 1 deletion examples/shop_app_example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ void _initDependencies() {
final talker = TalkerFlutter.init(
settings: TalkerSettings(
colors: {
TalkerLogType.verbose.key: AnsiPen()..yellow(),
TalkerKey.verbose: AnsiPen()..yellow(),
GoodLog.getKey: GoodLog.getPen,
},
),
Expand Down
28 changes: 14 additions & 14 deletions examples/shop_app_example/lib/ui/router.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,19 @@ final appRoutes = <String, WidgetBuilder>{
Routes.talker: (context) => TalkerScreen(
talker: DI<Talker>(),
theme: talkerTheme,
customSettings: [
CustomSettingsGroup(
title: 'Website settings',
enabled: true,
onToggleEnabled: (_) {},
items: [
CustomSettingsItemBool(
name: 'Disable remote logs',
value: false,
onChanged: (_) {},
),
],
),
],
// customSettings: [
// CustomSettingsGroup(
// title: 'Website settings',
// enabled: true,
// onToggleEnabled: (_) {},
// items: [
// CustomSettingsItemBool(
// name: 'Disable remote logs',
// value: false,
// onChanged: (_) {},
// ),
// ],
// ),
// ],
),
};
6 changes: 3 additions & 3 deletions examples/shop_app_example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ dependencies:
flutter:
sdk: flutter

talker_flutter: ^4.9.3
talker_dio_logger: ^4.9.3
talker_bloc_logger: ^4.9.3
talker_flutter: ^5.0.0-dev.8
talker_dio_logger: ^5.0.0-dev.8
talker_bloc_logger: ^5.0.0-dev.8

get_it: ^7.6.7
flutter_bloc: ^9.0.0
Expand Down
49 changes: 48 additions & 1 deletion packages/talker/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,50 @@
# 5.0.0-dev.8
- - [talker] Sync release and prerelease versions

Thanks to [Frezyx](https://github.com/Frezyx)

# 5.0.0-dev.7
- - [talker_dio_logger] Fix ``FormData``s ``contentType`` field

Thanks to [Frezyx](https://github.com/Frezyx)

# 5.0.0-dev.6
- - [talker_dio_logger] Add ``FormData`` parser for request logs data

Thanks to [Frezyx](https://github.com/Frezyx)

# 5.0.0-dev.5
- [talker] Add ``registeredKeys`` field into ``TalkerSettings`` for third-party packages
- [talker] Remove deprecated ``titles`` and ``types`` from ``TalkerFilter``
- [talker] Add ``enabledKeys`` and ``disabledKeys`` fields into ``TalkerFilter`` to replace old filtering logic
- [talker_flutter] Add ``TalkerFilter`` configuration on ``TalkerScreen``
- [talker_dio_logger] Add ``TalkerKey``s registration
- [talker_http_logger] Add ``TalkerKey``s registration
- [talker_bloc_logger] Add ``TalkerKey``s registration
- [talker_riverpod_logger] Add ``TalkerKey``s registration

Thanks to [Frezyx](https://github.com/Frezyx)

# 5.0.0-dev.4
- [talker_dio_logger] Remove unused addonId field from dio_logger

Thanks to [Frezyx](https://github.com/Frezyx)

# 5.0.0-dev.3
- [talker] Upgrade **BaseTalkerFilter** class - add new filtering way by **List<String> keys** field
- [talker] Deprecate **titles** and **types** fields from **BaseTalkerFilter**

Thanks to [Frezyx](https://github.com/Frezyx)

# 5.0.0-dev.2
- [talker] Fix errors and exceptions filtering for observer

Thanks to [Frezyx](https://github.com/Frezyx)

# 5.0.0-dev.1
- [talker] Brand new simplified TalkerKeys API (String Log key)

Thanks to [Frezyx](https://github.com/Frezyx)
# 4.9.3
- [talker] chore(deps): update dependency gradle to v8.14.3
[talker] chore(deps): update plugin com.android.application to v8.11.1
Expand Down Expand Up @@ -434,7 +481,7 @@ Thanks to [wcoder](https://github.com/wcoder)
Thanks to [IlyaZadyabin](https://github.com/IlyaZadyabin)

# 3.0.4
- - Add topics in pubspec.yaml
-Add topics in pubspec.yaml

# 3.0.3
- Update **talker_logger** version to 3.0.4
Expand Down
18 changes: 9 additions & 9 deletions packages/talker/example/talker_example.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ Future<void> main() async {
final talker = Talker(
settings: TalkerSettings(
colors: {
TalkerLogType.info.key: AnsiPen()..magenta(),
YourCustomLog.logKey: AnsiPen()..green(),
TalkerKey.info: AnsiPen()..magenta(),
YourCustomKey.logKey: AnsiPen()..green(),
},
titles: {
TalkerLogType.exception.key: 'Whatever you want',
TalkerLogType.error.key: 'E',
TalkerLogType.info.key: 'i',
YourCustomLog.logKey: 'Custom',
TalkerKey.exception: 'Whatever you want',
TalkerKey.error: 'E',
TalkerKey.info: 'i',
YourCustomKey.logKey: 'Custom',
},
),
);
Expand All @@ -32,11 +32,11 @@ Future<void> main() async {
}

/// Custom logs
talker.logCustom(YourCustomLog('Something like your own service message'));
talker.logCustom(YourCustomKey('Something like your own service message'));
}

class YourCustomLog extends TalkerLog {
YourCustomLog(String message) : super(message);
class YourCustomKey extends TalkerLog {
YourCustomKey(String message) : super(message);

/// Your own log key (for color customization in settings)
static const logKey = 'custom_log_key';
Expand Down
76 changes: 35 additions & 41 deletions packages/talker/lib/src/filter.dart
Original file line number Diff line number Diff line change
@@ -1,64 +1,58 @@
import 'package:talker/talker.dart';

typedef TalkerFilter = _Filter<TalkerData>;

class BaseTalkerFilter implements TalkerFilter {
BaseTalkerFilter({
this.titles = const [],
this.types = const [],
class TalkerFilter implements _Filter<TalkerData> {
TalkerFilter({
this.enabledKeys = const [],
this.disabledKeys = const [],
this.searchQuery,
});

/// List of enabled for filter titles [exception], [error], [verbose]
final List<String> titles;
/// List of enabled for filter keys
/// This is a new way to filter logs by their keys.
/// Keys are unique identifiers for logs, which can be set when creating a log.
/// All original talker keys here [TalkerKey]
final List<String> enabledKeys;

/// List of enabled for filter types - subclasses of [TalkerData]
/// Like [TalkerError], [TalkerException], [TalkerLog], etc.
final List<Type> types;
/// List of disabled for filter keys
/// This is a new way to filter logs by their keys.
/// Keys are unique identifiers for logs, which can be set when creating a log.
/// All original talker keys here [TalkerKey]
final List<String> disabledKeys;

/// String query for filtering logs
final String? searchQuery;

@override
bool filter(TalkerData item) {
if (titles.isEmpty && types.isEmpty && (searchQuery?.isEmpty ?? true)) {
return true;
} else {
var match = false;

if (searchQuery?.isNotEmpty ?? false) {
final fullMsg = item.generateTextMessage();
final fullUpperMsg = fullMsg.toUpperCase();
final fullLowerMsg = fullMsg.toLowerCase();
match = fullUpperMsg.contains(searchQuery!) ||
fullLowerMsg.contains(searchQuery!);
}
var searchMatch = true;
var enabledKeysMatch = true;
var disabledKeysMatch = true;

final query = searchQuery?.toLowerCase();
if (query != null && query.isNotEmpty) {
final message = item.generateTextMessage().toLowerCase();
searchMatch = message.contains(query);
}

return (titles.contains(item.title) || titles.isEmpty) &&
(_checkTypeMatch(item) || types.isEmpty) &&
(match || (searchQuery?.isEmpty ?? true));
if (enabledKeys.isNotEmpty) {
enabledKeysMatch = enabledKeys.contains(item.key);
}
}

bool _checkTypeMatch(TalkerData item) {
var match = false;
for (final type in types) {
if (item.runtimeType == type) {
match = true;
break;
}
if (disabledKeys.isNotEmpty) {
disabledKeysMatch = !disabledKeys.contains(item.key);
}
return match;

return searchMatch && enabledKeysMatch && disabledKeysMatch;
}

BaseTalkerFilter copyWith({
List<String>? titles,
List<Type>? types,
TalkerFilter copyWith({
List<String>? enabledKeys,
List<String>? disabledKeys,
String? searchQuery,
}) {
return BaseTalkerFilter(
titles: titles ?? this.titles,
types: types ?? this.types,
return TalkerFilter(
enabledKeys: enabledKeys ?? this.enabledKeys,
disabledKeys: disabledKeys ?? this.disabledKeys,
searchQuery: searchQuery ?? this.searchQuery,
);
}
Expand Down
2 changes: 1 addition & 1 deletion packages/talker/lib/src/models/talker_error.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class TalkerError extends TalkerData {
super.title,
LogLevel? logLevel,
}) : super(message, error: error) {
_key = key ?? TalkerLogType.error.key;
_key = key ?? TalkerKey.error;
_logLevel = logLevel ?? LogLevel.error;
}

Expand Down
2 changes: 1 addition & 1 deletion packages/talker/lib/src/models/talker_exception.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class TalkerException extends TalkerData {
super.title,
LogLevel? logLevel,
}) : super(message, exception: exception) {
_key = key ?? TalkerLogType.exception.key;
_key = key ?? TalkerKey.exception;
_logLevel = logLevel ?? LogLevel.error;
}

Expand Down
Loading