oshco/db-exceptions-logger

A component which is used to log exceptions to database.

Maintainers

Package info

github.com/OSHCO/db-exceptions-logger

pkg:composer/oshco/db-exceptions-logger

Statistics

Installs: 882

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v2.0.0 2026-05-10 15:28 UTC

This package is auto-updated.

Last update: 2026-05-10 15:30:16 UTC


README

A WebFiori framework extension that logs exceptions to a database. Currently supports SQL Server only.

Requirements

Installation

composer require oshco/db-exceptions-logger

Setup

1. Initialize the database table

The library uses migrations to create the system_exceptions table. Run:

php webfiori migrations:ini --connection=<your-connection>
php webfiori migrations:run --connection=<your-connection>

2. Register the error handler

use Oshco\ErrHandler\DatabaseErrHandler;
use Oshco\Infrastructure\Repository\ExceptionsRepository;
use WebFiori\Error\Handler;
use WebFiori\Framework\App;

$db = App::getDatabase('your-connection');
$repo = new ExceptionsRepository($db);
Handler::registerHandler(new DatabaseErrHandler($repo));

How It Works

When an exception occurs, DatabaseErrHandler captures:

  • Exception code, class, and message
  • File, line number, and stack trace
  • Request URL and parameters
  • A SHA-256 hash of the exception for deduplication

All data is stored in the system_exceptions table via ExceptionsRepository.

Classes

Class Description
DatabaseErrHandler Error handler that captures exception details and delegates storage to ExceptionsRepository.
ExceptionsRepository Repository providing CRUD operations on the system_exceptions table.
SystemExceptionsTable MSSQL table schema definition for system_exceptions.
SystemException Entity representing a logged exception record.

Running Tests

Requires a running SQL Server instance:

SA_SQL_SERVER_PASSWORD='<your-password>' composer test

License

MIT