@@ -55,6 +55,13 @@ class PrettyPrinter extends LogPrinter {
55
55
static final _webStackTraceRegex =
56
56
RegExp (r'^((packages|dart-sdk)\/[^\s]+\/)' );
57
57
58
+ /// Matches a stacktrace line as generated by browser Dart.
59
+ /// For example:
60
+ /// dart:sdk_internal
61
+ /// package:logger/src/logger.dart
62
+ static final _browserStackTraceRegex =
63
+ RegExp (r'^(?:package:)?(dart:[^\s]+|[^\s]+)' );
64
+
58
65
static DateTime _startTime;
59
66
60
67
/// Amount of [StackTrace] lines to show with message (non-error log).
@@ -147,7 +154,8 @@ class PrettyPrinter extends LogPrinter {
147
154
var count = 0 ;
148
155
for (var line in lines) {
149
156
if (_discardDeviceStacktraceLine (line) ||
150
- _discardWebStacktraceLine (line)) {
157
+ _discardWebStacktraceLine (line) ||
158
+ _discardBrowserStacktraceLine (line)) {
151
159
continue ;
152
160
}
153
161
formatted.add ('#$count ${line .replaceFirst (RegExp (r'#\d+\s+' ), '' )}' );
@@ -180,6 +188,15 @@ class PrettyPrinter extends LogPrinter {
180
188
match.group (1 ).startsWith ('dart-sdk/lib' );
181
189
}
182
190
191
+ bool _discardBrowserStacktraceLine (String line) {
192
+ var match = _browserStackTraceRegex.matchAsPrefix (line);
193
+ if (match == null ) {
194
+ return false ;
195
+ }
196
+ return match.group (1 ).startsWith ('package:logger' ) ||
197
+ match.group (1 ).startsWith ('dart:' );
198
+ }
199
+
183
200
String getTime () {
184
201
String _threeDigits (int n) {
185
202
if (n >= 100 ) return '$n ' ;
0 commit comments