Skip to content

Commit

Permalink
enable processed data trace only on trace enabled logging level
Browse files Browse the repository at this point in the history
  • Loading branch information
lsfera committed Jul 27, 2024
1 parent 2726be9 commit c777721
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 5 deletions.
10 changes: 8 additions & 2 deletions src/Blumchen/DependencyInjection/Worker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,20 @@ public class Worker<T>(
private static readonly ConcurrentDictionary<string, Action<ILogger, string, object[]>> LoggingActions = new(StringComparer.OrdinalIgnoreCase);
private static void Notify(ILogger logger, LogLevel level, string template, params object[] parameters)
{
LoggingActions.GetOrAdd(template,_ => LoggerAction(level, logger.IsEnabled(level)))(logger, template, parameters);
return;

static Action<ILogger, string, object[]> LoggerAction(LogLevel ll, bool enabled) =>
(ll, enabled) switch
{
(LogLevel.Information, true) => (logger, template, parameters) => logger.LogInformation(template, parameters),
(LogLevel.Debug, true) => (logger, template, parameters) => logger.LogDebug(template, parameters),
(LogLevel.Trace, true) => (logger, template, parameters) => logger.LogTrace(template, parameters),
(LogLevel.Warning, true) => (logger, template, parameters) => logger.LogWarning(template, parameters),
(LogLevel.Error, true) => (logger, template, parameters) => logger.LogError(template, parameters),
(LogLevel.Critical, true) => (logger, template, parameters) => logger.LogCritical(template, parameters),
(_, _) => (_, _, _) => { }
};
LoggingActions.GetOrAdd(template,_ => LoggerAction(level, logger.IsEnabled(level)))(logger, template, parameters);
}

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
Expand All @@ -33,7 +39,7 @@ await options.ResiliencePipeline.ExecuteAsync(async token =>
.GetAsyncEnumerator(token);
Notify(logger, LogLevel.Information,"{WorkerName} started", WorkerName);
while (await cursor.MoveNextAsync().ConfigureAwait(false) && !token.IsCancellationRequested)
Notify(logger, LogLevel.Debug, "{cursor.Current} processed", cursor.Current);
Notify(logger, LogLevel.Trace, "{cursor.Current} processed", cursor.Current);

}, stoppingToken).ConfigureAwait(false);
Notify(logger, LogLevel.Information, "{WorkerName} stopped", WorkerName);
Expand Down
4 changes: 2 additions & 2 deletions src/Subscriber/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
.AddFilter("Blumchen", LogLevel.Debug)
.AddFilter("Subscriber", LogLevel.Trace)
.AddSimpleConsole());
var logger = loggerFactory.CreateLogger<Program>();
var logger = loggerFactory.CreateLogger("Subscriber");
var dataSourceBuilder = new NpgsqlDataSourceBuilder(Settings.ConnectionString)
.UseLoggerFactory(loggerFactory);
var cursor = subscription.Subscribe(
Expand Down Expand Up @@ -59,7 +59,7 @@
await using var cursor1 = cursor.ConfigureAwait(false);
while (await cursor.MoveNextAsync().ConfigureAwait(false) && !ct.IsCancellationRequested)
if(logger.IsEnabled(LogLevel.Trace))
logger.LogTrace(cursor.Current.ToString());
logger.LogTrace($"{cursor.Current} processed");
}
catch (Exception e)
{
Expand Down
2 changes: 1 addition & 1 deletion src/SubscriberWorker/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
.AddFilter("Microsoft", LogLevel.Warning)
.AddFilter("System", LogLevel.Warning)
.AddFilter("Npgsql", LogLevel.Information)
.AddFilter("Blumchen", LogLevel.Debug)
.AddFilter("Blumchen", LogLevel.Trace)
.AddFilter("SubscriberWorker", LogLevel.Debug)
.AddSimpleConsole();
})
Expand Down

0 comments on commit c777721

Please sign in to comment.