corrected extensions via ILoggingBuilder

alphons <alphons@heijden.com> 23 Feb 2026, 14:48
11397d722b6d0a5e699bb23ddf3806daf0425b9b
5 files changed
  • src/VanDerHeijden.Logging.File/FileLoggingBuilderExtensions.cs
  • src/VanDerHeijden.Logging.MongoDb/MongoDbLoggingBuilderExtensions.cs
  • src/VanDerHeijden.Logging.Redis/RedisLoggingBuilderExtensions.cs
  • src/VanDerHeijden.Logging.Sql/SqlLoggingBuilderExtensions.cs
  • src/VanDerHeijden.Logging/CustomLoggingExtensions.cs
diff --git a/src/VanDerHeijden.Logging.File/FileLoggingBuilderExtensions.cs b/src/VanDerHeijden.Logging.File/FileLoggingBuilderExtensions.cs
index 3a38daa..26bf378 100644
--- a/src/VanDerHeijden.Logging.File/FileLoggingBuilderExtensions.cs
+++ b/src/VanDerHeijden.Logging.File/FileLoggingBuilderExtensions.cs
@@ -13,16 +13,16 @@ public static class FileLoggingBuilderExtensions
/// Adds a file logger that writes log messages to daily rotating text files inside
/// <paramref name="logDirectory"/>.
/// </summary>
- /// <param name="services">The <see cref="IServiceCollection"/> to configure.</param>
+ /// <param name="builder">The <see cref="ILoggingBuilder"/> to configure.</param>
/// <param name="logDirectory">
/// Path to the directory where log files are written.
/// The directory is created automatically if it does not exist.
/// Defaults to <c>"Logs"</c>.
/// </param>
- /// <returns>The <paramref name="services"/> so that additional calls can be chained.</returns>
- public static IServiceCollection AddFileLogger(this IServiceCollection services, string logDirectory = "Logs")
+ /// <returns>The <paramref name="builder"/> so that additional calls can be chained.</returns>
+ public static ILoggingBuilder AddFileLogger(this ILoggingBuilder builder, string logDirectory = "Logs")
{
- services.AddSingleton<ILoggerProvider>(_ =>
+ builder.Services.AddSingleton<ILoggerProvider>(_ =>
{
var logWriter = new FileLogWriter(logDirectory);
var batchedLogger = new BatchedLogger<string>(logWriter, fullMode: BoundedChannelFullMode.Wait);
@@ -32,6 +32,6 @@ public static class FileLoggingBuilderExtensions
$"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff} {message}{Environment.NewLine}"
);
});
- return services;
+ return builder;
}
}
diff --git a/src/VanDerHeijden.Logging.MongoDb/MongoDbLoggingBuilderExtensions.cs b/src/VanDerHeijden.Logging.MongoDb/MongoDbLoggingBuilderExtensions.cs
index 2863d9a..bccb7f0 100644
--- a/src/VanDerHeijden.Logging.MongoDb/MongoDbLoggingBuilderExtensions.cs
+++ b/src/VanDerHeijden.Logging.MongoDb/MongoDbLoggingBuilderExtensions.cs
@@ -13,12 +13,12 @@ public static class MongoDbLoggingBuilderExtensions
/// <summary>
/// Adds a MongoDB logger that inserts log entries into the specified collection in batches.
/// </summary>
- /// <param name="services">The <see cref="IServiceCollection"/> to configure.</param>
+ /// <param name="builder">The <see cref="ILoggingBuilder"/> to configure.</param>
/// <param name="collection">The MongoDB collection that will receive <see cref="LogEntry"/> documents.</param>
- /// <returns>The <paramref name="services"/> so that additional calls can be chained.</returns>
- public static IServiceCollection AddMongoDbLogger(this IServiceCollection services, IMongoCollection<LogEntry> collection)
+ /// <returns>The <paramref name="builder"/> so that additional calls can be chained.</returns>
+ public static ILoggingBuilder AddMongoDbLogger(this ILoggingBuilder builder, IMongoCollection<LogEntry> collection)
{
- services.AddSingleton<ILoggerProvider>(_ =>
+ builder.Services.AddSingleton<ILoggerProvider>(_ =>
{
var logWriter = new MongoDbLogWriter(collection);
var batchedLogger = new BatchedLogger<LogEntry>(logWriter, batchSize: 100, maxIdleMs: 3000, fullMode: BoundedChannelFullMode.DropOldest);
@@ -33,6 +33,6 @@ public static class MongoDbLoggingBuilderExtensions
}
);
});
- return services;
+ return builder;
}
}
diff --git a/src/VanDerHeijden.Logging.Redis/RedisLoggingBuilderExtensions.cs b/src/VanDerHeijden.Logging.Redis/RedisLoggingBuilderExtensions.cs
index 0a9bc7e..d01744f 100644
--- a/src/VanDerHeijden.Logging.Redis/RedisLoggingBuilderExtensions.cs
+++ b/src/VanDerHeijden.Logging.Redis/RedisLoggingBuilderExtensions.cs
@@ -13,21 +13,21 @@ public static class RedisLoggingBuilderExtensions
/// <summary>
/// Adds a Redis logger that pushes log entries as JSON to a Redis list using <c>RPUSH</c>.
/// </summary>
- /// <param name="services">The <see cref="IServiceCollection"/> to configure.</param>
+ /// <param name="builder">The <see cref="ILoggingBuilder"/> to configure.</param>
/// <param name="database">The Redis database instance used for all write operations.</param>
/// <param name="listKey">The Redis key of the list that receives log entries. Defaults to <c>"logs"</c>.</param>
/// <param name="ttl">
/// Optional time-to-live applied to <paramref name="listKey"/> after each batch write.
/// When <see langword="null"/> (the default) the key never expires.
/// </param>
- /// <returns>The <paramref name="services"/> so that additional calls can be chained.</returns>
- public static IServiceCollection AddRedisLogger(
- this IServiceCollection services,
+ /// <returns>The <paramref name="builder"/> so that additional calls can be chained.</returns>
+ public static ILoggingBuilder AddRedisLogger(
+ this ILoggingBuilder builder,
IDatabase database,
string listKey = "logs",
TimeSpan? ttl = null)
{
- services.AddSingleton<ILoggerProvider>(_ =>
+ builder.Services.AddSingleton<ILoggerProvider>(_ =>
{
var logWriter = new RedisLogWriter(database, listKey, ttl);
var batchedLogger = new BatchedLogger<RedisLogEntry>(logWriter, batchSize: 200, maxIdleMs: 2000, fullMode: BoundedChannelFullMode.DropOldest);
@@ -42,6 +42,6 @@ public static class RedisLoggingBuilderExtensions
}
);
});
- return services;
+ return builder;
}
}
diff --git a/src/VanDerHeijden.Logging.Sql/SqlLoggingBuilderExtensions.cs b/src/VanDerHeijden.Logging.Sql/SqlLoggingBuilderExtensions.cs
index 9791868..d3e6889 100644
--- a/src/VanDerHeijden.Logging.Sql/SqlLoggingBuilderExtensions.cs
+++ b/src/VanDerHeijden.Logging.Sql/SqlLoggingBuilderExtensions.cs
@@ -12,19 +12,19 @@ public static class SqlLoggingBuilderExtensions
/// <summary>
/// Adds a SQL Server logger that bulk-inserts log entries into the specified table using <c>SqlBulkCopy</c>.
/// </summary>
- /// <param name="services">The <see cref="IServiceCollection"/> to configure.</param>
+ /// <param name="builder">The <see cref="ILoggingBuilder"/> to configure.</param>
/// <param name="connectionString">The SQL Server connection string.</param>
/// <param name="tableName">
/// The destination table name. Defaults to <c>"Logs"</c>.
/// See <see cref="SqlLogWriter"/> for the expected schema.
/// </param>
- /// <returns>The <paramref name="services"/> so that additional calls can be chained.</returns>
- public static IServiceCollection AddSqlLogger(
- this IServiceCollection services,
+ /// <returns>The <paramref name="builder"/> so that additional calls can be chained.</returns>
+ public static ILoggingBuilder AddSqlLogger(
+ this ILoggingBuilder builder,
string connectionString,
string tableName = "Logs")
{
- services.AddSingleton<ILoggerProvider>(_ =>
+ builder.Services.AddSingleton<ILoggerProvider>(_ =>
{
var logWriter = new SqlLogWriter(connectionString, tableName);
var batchedLogger = new BatchedLogger<SqlLogEntry>(logWriter, batchSize: 200, maxIdleMs: 4000, fullMode: BoundedChannelFullMode.Wait);
@@ -39,6 +39,6 @@ public static class SqlLoggingBuilderExtensions
}
);
});
- return services;
+ return builder;
}
}
diff --git a/src/VanDerHeijden.Logging/CustomLoggingExtensions.cs b/src/VanDerHeijden.Logging/CustomLoggingExtensions.cs
index 01ac3a9..738c159 100644
--- a/src/VanDerHeijden.Logging/CustomLoggingExtensions.cs
+++ b/src/VanDerHeijden.Logging/CustomLoggingExtensions.cs
@@ -9,15 +9,15 @@ namespace VanDerHeijden.Logging;
public static class CustomLoggingExtensions
{
/// <summary>
- ///
+ /// AddCustomLogging for SimpleConsole and setting DefaultLogLevel via <see cref="ILoggingBuilder" />
/// </summary>
- /// <param name="services"></param>
- /// <param name="ConsoleLogging"></param>
+ /// <param name="builder">The <see cref="ILoggingBuilder"/> to configure.</param>
+ /// <param name="ConsoleLogging">true for SimpleConsole logging</param>
/// <param name="DefaultLogLevel">Trace, Debug, Information, Warning, Error, Critical, None</param>
- /// <returns>The <paramref name="services"/> so that additional calls can be chained.</returns>
- public static IServiceCollection AddCustomLogging(this IServiceCollection services, bool ConsoleLogging = true, string DefaultLogLevel = "Information")
+ /// <returns>The <paramref name="builder"/> so that additional calls can be chained.</returns>
+ public static ILoggingBuilder AddCustomLogging(this ILoggingBuilder builder, bool ConsoleLogging = true, string DefaultLogLevel = "Information")
{
- services.AddLogging(logging =>
+ builder.Services.AddLogging(logging =>
{
logging.ClearProviders();
logging.AddFilter("Microsoft.AspNetCore.Watch", LogLevel.None);
@@ -33,6 +33,6 @@ public static class CustomLoggingExtensions
LogLevel minimumLevel = Enum.TryParse<LogLevel>(DefaultLogLevel, true, out LogLevel parsedLevel) ? parsedLevel : LogLevel.Information;
logging.SetMinimumLevel(minimumLevel);
});
- return services;
+ return builder;
}
}
\ No newline at end of file