elsa-core/src/modules/Elsa.Diagnostics.StructuredLogs.Persistence.Sqlite/README.md
Sipke Schoorstra 827ad6bc6b
[codex] Add structured log SQLite persistence (#7445)
* Add structured log persistence spec

* Clarify structured log persistence spec

* Plan structured log persistence implementation

* Regenerate structured log persistence tasks

* Address structured log persistence analysis findings

* Add structured log SQLite persistence

* Address structured log persistence review

* Harden structured log write buffer shutdown

* Start structured log SQLite migrations before buffer
2026-05-13 15:57:06 +02:00

1.5 KiB

Elsa Diagnostics Structured Logs SQLite Persistence

This package persists diagnostics structured log events to SQLite using the shared relational structured log store.

Configure

services.AddElsa(elsa =>
{
    elsa.UseStructuredLogs(structuredLogs =>
    {
        structuredLogs.UseSqliteStorage("Data Source=elsa-structured-logs.db", sqlite =>
        {
            sqlite.RunMigrationsOnStartup = true;
            sqlite.Relational.WriteQueue.Capacity = 10_000;
            sqlite.Relational.WriteQueue.BatchSize = 100;
        });
    });
});

SQLite migrations run on startup by default. Set RunMigrationsOnStartup to false when migrations are handled by deployment tooling.

Retention

SQLite storage does not delete persisted log entries by default. Configure retention explicitly:

sqlite.Relational.Retention.MaxAge = TimeSpan.FromDays(14);
sqlite.Relational.Retention.MaxRows = 250_000;
sqlite.Relational.Retention.CleanupOnStartup = true;

Write Queue

Writes are buffered through a bounded queue. Graceful shutdown flushes queued events where possible. If the queue is full, newest writes are dropped and IStructuredLogWriteBuffer.DroppedWriteCount reports the dropped-write count.

Provider Boundary

SQLite-specific services live in this package: connection factory, SQL dialect, FluentMigrator runner wiring, and startup migration/cleanup service. Shared relational behavior lives in Elsa.Diagnostics.StructuredLogs.Persistence.Relational.