From cd5946c9a371d1e621e47e5ec441622661fd8a24 Mon Sep 17 00:00:00 2001 From: peter <16809252+percula@users.noreply.github.com> Date: Mon, 4 Apr 2022 13:44:42 -0400 Subject: [PATCH] feat: Expose message, error, and stackTrace in OutputEvent --- lib/src/logger.dart | 19 +++++++++++++++++-- test/outputs/memory_output_test.dart | 6 +++--- test/outputs/multi_output_test.dart | 8 ++++---- test/outputs/stream_output_test.dart | 10 +++++----- 4 files changed, 29 insertions(+), 14 deletions(-) diff --git a/lib/src/logger.dart b/lib/src/logger.dart index 9378662..ec9156e 100644 --- a/lib/src/logger.dart +++ b/lib/src/logger.dart @@ -29,8 +29,17 @@ class LogEvent { class OutputEvent { final Level level; final List lines; + final dynamic message; + final dynamic error; + final StackTrace? stackTrace; - OutputEvent(this.level, this.lines); + OutputEvent({ + required this.level, + required this.lines, + this.message, + this.error, + this.stackTrace, + }); } @Deprecated('Use a custom LogFilter instead') @@ -115,7 +124,13 @@ class Logger { var output = _printer.log(logEvent); if (output.isNotEmpty) { - var outputEvent = OutputEvent(level, output); + var outputEvent = OutputEvent( + level: level, + lines: output, + message: message, + error: error, + stackTrace: stackTrace, + ); // Issues with log output should NOT influence // the main software behavior. try { diff --git a/test/outputs/memory_output_test.dart b/test/outputs/memory_output_test.dart index 4d92b2a..7ec17f5 100644 --- a/test/outputs/memory_output_test.dart +++ b/test/outputs/memory_output_test.dart @@ -5,9 +5,9 @@ void main() { test('Memory output buffer size is limited', () { var output = MemoryOutput(bufferSize: 2); - final event0 = OutputEvent(Level.info, []); - final event1 = OutputEvent(Level.info, []); - final event2 = OutputEvent(Level.info, []); + final event0 = OutputEvent(level: Level.info, lines: []); + final event1 = OutputEvent(level: Level.info, lines: []); + final event2 = OutputEvent(level: Level.info, lines: []); output.output(event0); output.output(event1); diff --git a/test/outputs/multi_output_test.dart b/test/outputs/multi_output_test.dart index ab7be20..857be06 100644 --- a/test/outputs/multi_output_test.dart +++ b/test/outputs/multi_output_test.dart @@ -8,7 +8,7 @@ void main() { final multiOutput = MultiOutput([output1, output2]); - final event0 = OutputEvent(Level.info, []); + final event0 = OutputEvent(level: Level.info, lines: []); multiOutput.output(event0); expect(output1.buffer.length, 1); @@ -16,7 +16,7 @@ void main() { expect(output1.buffer.elementAt(0), equals(output2.buffer.elementAt(0))); expect(output1.buffer.elementAt(0), equals(event0)); - final event1 = OutputEvent(Level.info, []); + final event1 = OutputEvent(level: Level.info, lines: []); multiOutput.output(event1); expect(output1.buffer.length, 2); @@ -29,11 +29,11 @@ void main() { test('passing null does not throw an exception', () { final output = MultiOutput(null); - output.output(OutputEvent(Level.info, [])); + output.output(OutputEvent(level: Level.info, lines: [])); }); test('passing null in the list does not throw an exception', () { final output = MultiOutput([null]); - output.output(OutputEvent(Level.info, [])); + output.output(OutputEvent(level: Level.info, lines: [])); }); } diff --git a/test/outputs/stream_output_test.dart b/test/outputs/stream_output_test.dart index 506abad..a17c94b 100644 --- a/test/outputs/stream_output_test.dart +++ b/test/outputs/stream_output_test.dart @@ -9,19 +9,19 @@ void main() { expect(e, ['hi there']); }); - out.output(OutputEvent(Level.debug, ['hi there'])); + out.output(OutputEvent(level: Level.debug, lines: ['hi there'])); }); test('respects listen', () { var out = StreamOutput(); - out.output(OutputEvent(Level.debug, ['dropped'])); + out.output(OutputEvent(level: Level.debug, lines: ['dropped'])); out.stream.listen((var e) { expect(e, ['hi there']); }); - out.output(OutputEvent(Level.debug, ['hi there'])); + out.output(OutputEvent(level: Level.debug, lines: ['hi there'])); }); test('respects pause', () { @@ -32,8 +32,8 @@ void main() { }); sub.pause(); - out.output(OutputEvent(Level.debug, ['dropped'])); + out.output(OutputEvent(level: Level.debug, lines: ['dropped'])); sub.resume(); - out.output(OutputEvent(Level.debug, ['hi there'])); + out.output(OutputEvent(level: Level.debug, lines: ['hi there'])); }); }