File tree 4 files changed +25
-3
lines changed 4 files changed +25
-3
lines changed Original file line number Diff line number Diff line change 1
- ## 1.2.1 -wip
1
+ ## 1.3.0 -wip
2
2
3
+ * Override empty stack traces for trace level events.
3
4
* Require Dart 3.2
4
5
5
6
## 1.2.0
Original file line number Diff line number Diff line change @@ -202,6 +202,10 @@ class Logger {
202
202
/// was made. This can be advantageous if a log listener wants to handler
203
203
/// records of different zones differently (e.g. group log records by HTTP
204
204
/// request if each HTTP request handler runs in it's own zone).
205
+ ///
206
+ /// If this record is logged at a level equal to or higher than
207
+ /// [recordStackTraceAtLevel] and [stackTrace] is `null` or [StackTrace.empty]
208
+ /// it will be defaulted to the current stack trace for this call.
205
209
void log (Level logLevel, Object ? message,
206
210
[Object ? error, StackTrace ? stackTrace, Zone ? zone]) {
207
211
Object ? object;
@@ -218,7 +222,8 @@ class Logger {
218
222
object = message;
219
223
}
220
224
221
- if (stackTrace == null && logLevel >= recordStackTraceAtLevel) {
225
+ if ((stackTrace == null || stackTrace == StackTrace .empty) &&
226
+ logLevel >= recordStackTraceAtLevel) {
222
227
stackTrace = StackTrace .current;
223
228
error ?? = 'autogenerated stack trace for $logLevel $msg ' ;
224
229
}
Original file line number Diff line number Diff line change 1
1
name : logging
2
- version : 1.2.1 -wip
2
+ version : 1.3.0 -wip
3
3
description : >-
4
4
Provides APIs for debugging and error logging, similar to loggers in other
5
5
languages, such as the Closure JS Logger and java.util.logging.Logger.
Original file line number Diff line number Diff line change @@ -690,6 +690,22 @@ void main() {
690
690
expect (records[2 ].stackTrace, isNull);
691
691
});
692
692
693
+ test ('defaults a missing trace' , () {
694
+ final records = < LogRecord > [];
695
+ recordStackTraceAtLevel = Level .SEVERE ;
696
+ root.onRecord.listen (records.add);
697
+ root.severe ('hello' );
698
+ expect (records.single.stackTrace, isNotNull);
699
+ });
700
+
701
+ test ('defaults an empty trace' , () {
702
+ final records = < LogRecord > [];
703
+ recordStackTraceAtLevel = Level .SEVERE ;
704
+ root.onRecord.listen (records.add);
705
+ root.severe ('hello' , 'error' , StackTrace .empty);
706
+ expect (records.single.stackTrace, isNot (StackTrace .empty));
707
+ });
708
+
693
709
test ('provided trace is used if given' , () {
694
710
final trace = StackTrace .current;
695
711
final records = < LogRecord > [];
You can’t perform that action at this time.
0 commit comments