@@ -84,6 +84,10 @@ class PrettyPrinter extends LogPrinter {
84
84
/// (boxing can still be turned on for some levels by using something like excludeBox:{Level.error:false} )
85
85
final bool noBoxingByDefault;
86
86
87
+ /// To exclude user's custom path
88
+ /// for example if you made a Mylog util redirect to logger.log,
89
+ /// you can add your Mylog path in [excludePaths] .
90
+ final List <String > excludePaths;
87
91
late final Map <Level , bool > includeBox;
88
92
89
93
String _topBorder = '' ;
@@ -100,6 +104,7 @@ class PrettyPrinter extends LogPrinter {
100
104
this .printTime = false ,
101
105
this .excludeBox = const {},
102
106
this .noBoxingByDefault = false ,
107
+ this .excludePaths = const [],
103
108
}) {
104
109
_startTime ?? = DateTime .now ();
105
110
@@ -180,30 +185,50 @@ class PrettyPrinter extends LogPrinter {
180
185
}
181
186
}
182
187
188
+ bool _isInExcludePaths (String segment) {
189
+ for (var element in excludePaths) {
190
+ if (segment.startsWith (element)) {
191
+ return true ;
192
+ }
193
+ }
194
+ return false ;
195
+ }
196
+
183
197
bool _discardDeviceStacktraceLine (String line) {
184
198
var match = _deviceStackTraceRegex.matchAsPrefix (line);
185
199
if (match == null ) {
186
200
return false ;
187
201
}
188
- return match.group (2 )! .startsWith ('package:logger' );
202
+ final segment = match.group (2 )! ;
203
+ if (segment.startsWith ('package:logger' )) {
204
+ return true ;
205
+ }
206
+ return _isInExcludePaths (segment);
189
207
}
190
208
191
209
bool _discardWebStacktraceLine (String line) {
192
210
var match = _webStackTraceRegex.matchAsPrefix (line);
193
211
if (match == null ) {
194
212
return false ;
195
213
}
196
- return match.group (1 )! .startsWith ('packages/logger' ) ||
197
- match.group (1 )! .startsWith ('dart-sdk/lib' );
214
+ final segment = match.group (1 )! ;
215
+ if (segment.startsWith ('packages/logger' ) ||
216
+ segment.startsWith ('dart-sdk/lib' )) {
217
+ return true ;
218
+ }
219
+ return _isInExcludePaths (segment);
198
220
}
199
221
200
222
bool _discardBrowserStacktraceLine (String line) {
201
223
var match = _browserStackTraceRegex.matchAsPrefix (line);
202
224
if (match == null ) {
203
225
return false ;
204
226
}
205
- return match.group (1 )! .startsWith ('package:logger' ) ||
206
- match.group (1 )! .startsWith ('dart:' );
227
+ final segment = match.group (1 )! ;
228
+ if (segment.startsWith ('package:logger' ) || segment.startsWith ('dart:' )) {
229
+ return true ;
230
+ }
231
+ return _isInExcludePaths (segment);
207
232
}
208
233
209
234
String getTime (DateTime time) {
0 commit comments