Eventuous / eventuous

Event Sourcing library for .NET
https://eventuous.dev
Apache License 2.0
442 stars 70 forks source link

Improve logging by adding a scope and better handling of inner exceptions #281

Closed fbjerggaard closed 9 months ago

fbjerggaard commented 11 months ago

This PR adds a scope to all log messages which makes them easier to filter out by SubscriptionId when filtering in a logging system that supports it.

It also fixes some nullreferenced inner exceptions I encountered at times by making all inner exceptions nullable

github-actions[bot] commented 11 months ago

Test Results

  32 files   -   16    32 suites   - 16   10m 56s :stopwatch: +17s 132 tests  -     2  132 :heavy_check_mark:  -     2  0 :zzz: ±0  0 :x: ±0  260 runs   - 130  260 :heavy_check_mark:  - 130  0 :zzz: ±0  0 :x: ±0 

Results for commit d3bfed92. ± Comparison against base commit a66fb591.

This pull request removes 6 and adds 4 tests. Note that renamed tests count towards both. ``` Eventuous.Tests.Subscriptions.SequenceTests ‑ ShouldReturnFirstBefore(sequence: [CommitPosition { Position = 0, Sequence = 1, Timestamp = 10/12/2023 11:55:47, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 11:55:47, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 4, Timestamp = 10/12/2023 11:55:47, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 6, Timestamp = 10/12/2023 11:55:47, Valid = True, LogContext = }], expected: CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 11:55:47, Valid = True, LogContext = }) Eventuous.Tests.Subscriptions.SequenceTests ‑ ShouldReturnFirstBefore(sequence: [CommitPosition { Position = 0, Sequence = 1, Timestamp = 10/12/2023 11:55:47, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 11:55:47, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 6, Timestamp = 10/12/2023 11:55:47, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 8, Timestamp = 10/12/2023 11:55:47, Valid = True, LogContext = }], expected: CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 11:55:47, Valid = True, LogContext = }) Eventuous.Tests.Subscriptions.SequenceTests ‑ ShouldReturnFirstBefore(sequence: [CommitPosition { Position = 0, Sequence = 1, Timestamp = 10/12/2023 11:55:49, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 11:55:49, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 4, Timestamp = 10/12/2023 11:55:49, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 6, Timestamp = 10/12/2023 11:55:49, Valid = True, LogContext = }], expected: CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 11:55:49, Valid = True, LogContext = }) Eventuous.Tests.Subscriptions.SequenceTests ‑ ShouldReturnFirstBefore(sequence: [CommitPosition { Position = 0, Sequence = 1, Timestamp = 10/12/2023 11:55:49, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 11:55:49, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 6, Timestamp = 10/12/2023 11:55:49, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 8, Timestamp = 10/12/2023 11:55:49, Valid = True, LogContext = }], expected: CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 11:55:49, Valid = True, LogContext = }) Eventuous.Tests.Subscriptions.SequenceTests ‑ ShouldReturnFirstBefore(sequence: [CommitPosition { Position = 0, Sequence = 1, Timestamp = 10/12/2023 11:55:52, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 11:55:52, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 4, Timestamp = 10/12/2023 11:55:52, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 6, Timestamp = 10/12/2023 11:55:52, Valid = True, LogContext = }], expected: CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 11:55:52, Valid = True, LogContext = }) Eventuous.Tests.Subscriptions.SequenceTests ‑ ShouldReturnFirstBefore(sequence: [CommitPosition { Position = 0, Sequence = 1, Timestamp = 10/12/2023 11:55:52, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 11:55:52, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 6, Timestamp = 10/12/2023 11:55:52, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 8, Timestamp = 10/12/2023 11:55:52, Valid = True, LogContext = }], expected: CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 11:55:52, Valid = True, LogContext = }) ``` ``` Eventuous.Tests.Subscriptions.SequenceTests ‑ ShouldReturnFirstBefore(sequence: [CommitPosition { Position = 0, Sequence = 1, Timestamp = 10/12/2023 13:06:52, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 13:06:52, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 4, Timestamp = 10/12/2023 13:06:52, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 6, Timestamp = 10/12/2023 13:06:52, Valid = True, LogContext = }], expected: CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 13:06:52, Valid = True, LogContext = }) Eventuous.Tests.Subscriptions.SequenceTests ‑ ShouldReturnFirstBefore(sequence: [CommitPosition { Position = 0, Sequence = 1, Timestamp = 10/12/2023 13:06:52, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 13:06:52, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 6, Timestamp = 10/12/2023 13:06:52, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 8, Timestamp = 10/12/2023 13:06:52, Valid = True, LogContext = }], expected: CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 13:06:52, Valid = True, LogContext = }) Eventuous.Tests.Subscriptions.SequenceTests ‑ ShouldReturnFirstBefore(sequence: [CommitPosition { Position = 0, Sequence = 1, Timestamp = 10/12/2023 13:07:17, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 13:07:17, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 4, Timestamp = 10/12/2023 13:07:17, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 6, Timestamp = 10/12/2023 13:07:17, Valid = True, LogContext = }], expected: CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 13:07:17, Valid = True, LogContext = }) Eventuous.Tests.Subscriptions.SequenceTests ‑ ShouldReturnFirstBefore(sequence: [CommitPosition { Position = 0, Sequence = 1, Timestamp = 10/12/2023 13:07:17, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 13:07:17, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 6, Timestamp = 10/12/2023 13:07:17, Valid = True, LogContext = }, CommitPosition { Position = 0, Sequence = 8, Timestamp = 10/12/2023 13:07:17, Valid = True, LogContext = }], expected: CommitPosition { Position = 0, Sequence = 2, Timestamp = 10/12/2023 13:07:17, Valid = True, LogContext = }) ```

:recycle: This comment has been updated with latest results.