Skip to content

Commit efcd18c

Browse files
committed
feat: add ProgressFinishedPayloadOnlyFilter and integrate it into ProgressConsoleMessageWriter
1 parent 99ccbc8 commit efcd18c

2 files changed

Lines changed: 10 additions & 1 deletion

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace WB.Logging.LogSinks.Console.Spectre;
2+
3+
internal sealed class ProgressFinishedPayloadOnlyFilter : ILogMessageFilter
4+
{
5+
public bool IsMatch<TPayload>(ILogMessage<TPayload> logMessage) where TPayload : notnull
6+
=> logMessage.Payload is ProgressFinishedPayload;
7+
}

src/LogMessageWriters/ProgressConsoleMessageWriter.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ internal sealed class ProgressConsoleMessageWriter
1414
: IAsyncLogMessageWriter<ProgressStartPayload, IAnsiConsole>
1515
, IAsyncLogMessageWriter<ProgressFinishedPayload, IAnsiConsole>
1616
{
17+
private readonly ProgressFinishedPayloadOnlyFilter progressFinishedPayloadOnlyFilter = new();
18+
1719
private IDisposable? logSinkDisabledSubscription;
1820

1921
// ┌─────────────────────────────────────────────────────────────────────────────┐
@@ -34,7 +36,7 @@ public ValueTask WriteAsync(DateTimeOffset timestamp, LogLevel? logLevel, IEnume
3436
{
3537
if (logSinkDisabledSubscription is null)
3638
{
37-
logSinkDisabledSubscription = LogSink?.Disable();
39+
logSinkDisabledSubscription = LogSink?.AddFilter(progressFinishedPayloadOnlyFilter);
3840

3941
payload.SetProgress(Writer.Progress());
4042
}

0 commit comments

Comments
 (0)