# ServerLogger v0.3.0 - Table of Contents

Database backed server log viewer for Phoenix LiveDashboard

## Pages

- [ServerLogger](readme.md)

## Modules

- [ServerLogger](ServerLogger.md): Context module for server log persistence and querying.
Provides functions for inserting, listing, counting, pruning logs,
and managing monthly partitions.

- [ServerLogger.BufferServer](ServerLogger.BufferServer.md): GenServer that batches log events from ETS and bulk-inserts them into the configured Repo.
- [ServerLogger.Config](ServerLogger.Config.md): Validates and retrieves ServerLogger configuration values.
- [ServerLogger.Dashboard.Component](ServerLogger.Dashboard.Component.md): LiveComponent for the Server Logger Viewer.
Provides filtering, sorting, search, pagination, inline row expansion,
auto-refresh, and metrics display.

- [ServerLogger.Dashboard.Page](ServerLogger.Dashboard.Page.md): Phoenix LiveDashboard custom page for viewing server logs.
- [ServerLogger.Handler](ServerLogger.Handler.md): Erlang :logger handler that captures log events and writes them
to the ETS buffer for later flushing to the database.
- [ServerLogger.Migration](ServerLogger.Migration.md): Provides migration functions for setting up the ServerLogger database tables.
- [ServerLogger.PrunerServer](ServerLogger.PrunerServer.md): GenServer that periodically:
1. Ensures the next month's partition exists
2. Prunes expired log rows per-level based on :lifetime_days config
3. Drops entire partitions when all levels have non-zero lifetimes and the partition is fully expired

- [ServerLogger.ServerLog](ServerLogger.ServerLog.md)
- [ServerLogger.Supervisor](ServerLogger.Supervisor.md): Top-level supervisor for ServerLogger.

## Mix Tasks

- [mix server_logger.gen.migration](Mix.Tasks.ServerLogger.Gen.Migration.md): Generates a migration file that creates the server_logs partitioned table.

