EasyReasy.Database.Logging.Npgsql
0.1.0
dotnet add package EasyReasy.Database.Logging.Npgsql --version 0.1.0
NuGet\Install-Package EasyReasy.Database.Logging.Npgsql -Version 0.1.0
<PackageReference Include="EasyReasy.Database.Logging.Npgsql" Version="0.1.0" />
<PackageVersion Include="EasyReasy.Database.Logging.Npgsql" Version="0.1.0" />
<PackageReference Include="EasyReasy.Database.Logging.Npgsql" />
paket add EasyReasy.Database.Logging.Npgsql --version 0.1.0
#r "nuget: EasyReasy.Database.Logging.Npgsql, 0.1.0"
#:package EasyReasy.Database.Logging.Npgsql@0.1.0
#addin nuget:?package=EasyReasy.Database.Logging.Npgsql&version=0.1.0
#tool nuget:?package=EasyReasy.Database.Logging.Npgsql&version=0.1.0
EasyReasy.Database.Logging.Npgsql
The PostgreSQL fast path for EasyReasy.Database.Logging. Adds:
- a binary
COPY FROM STDINsink for high-throughput bulk insert, binding thepropertiescolumn as nativejsonb; - a monthly range-partition retention background service (create current + 2 future months, drop partitions older than the retention window);
- the partitioned table DDL (
OperationalLogSchema.CreateTableSql).
Installation
dotnet add package EasyReasy.Database.Logging.Npgsql
Usage
Add it after the core registration — it swaps the agnostic INSERT sink for the COPY sink:
builder.Services.AddOperationalLogging(options => options.TableName = "operational_log");
builder.Services.AddNpgsqlOperationalLogging(npgsql =>
{
npgsql.Retention = TimeSpan.FromDays(90); // default
npgsql.MaintainPartitions = true; // default
});
builder.Host.UseOperationalLogging();
The registered DbDataSource must be an NpgsqlDataSource (as provided by EasyReasy.Database.Npgsql).
Creating the table
Run the DDL through your own migration (e.g. dbup) — the library does not own your migration sequence:
string ddl = OperationalLogSchema.CreateTableSql("operational_log");
// add `ddl` as a migration script
The DDL creates the range-partitioned parent, the indexes, the current + next two monthly partitions, and a DEFAULT partition so writes never fail before the maintenance service first runs. The table name must be an unqualified identifier (it is also used to derive partition and index names).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- EasyReasy.Database (>= 1.1.0)
- EasyReasy.Database.Logging (>= 0.1.0)
- EasyReasy.Database.Npgsql (>= 1.0.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.8)
- Npgsql (>= 10.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 42 | 6/5/2026 |