File tree Expand file tree Collapse file tree 4 files changed +25
-3
lines changed
Expand file tree Collapse file tree 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
22
3+ * Override empty stack traces for trace level events.
34* Require Dart 3.2
45
56## 1.2.0
Original file line number Diff line number Diff line change @@ -202,6 +202,10 @@ class Logger {
202202 /// was made. This can be advantageous if a log listener wants to handler
203203 /// records of different zones differently (e.g. group log records by HTTP
204204 /// 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.
205209 void log (Level logLevel, Object ? message,
206210 [Object ? error, StackTrace ? stackTrace, Zone ? zone]) {
207211 Object ? object;
@@ -218,7 +222,8 @@ class Logger {
218222 object = message;
219223 }
220224
221- if (stackTrace == null && logLevel >= recordStackTraceAtLevel) {
225+ if ((stackTrace == null || stackTrace == StackTrace .empty) &&
226+ logLevel >= recordStackTraceAtLevel) {
222227 stackTrace = StackTrace .current;
223228 error ?? = 'autogenerated stack trace for $logLevel $msg ' ;
224229 }
Original file line number Diff line number Diff line change 11name : logging
2- version : 1.2.1 -wip
2+ version : 1.3.0 -wip
33description : >-
44 Provides APIs for debugging and error logging, similar to loggers in other
55 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() {
690690 expect (records[2 ].stackTrace, isNull);
691691 });
692692
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+
693709 test ('provided trace is used if given' , () {
694710 final trace = StackTrace .current;
695711 final records = < LogRecord > [];
You can’t perform that action at this time.
0 commit comments