PHPackages                             dragonwize/dw-log-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. dragonwize/dw-log-bundle

ActiveSymfony-bundle[Logging &amp; Monitoring](/categories/logging)

dragonwize/dw-log-bundle
========================

Highly opinionated log storage and viewer for Symfony in low traffic use cases.

1136PHP

Since Mar 1Pushed 2mo agoCompare

[ Source](https://github.com/dragonwize/dw-log-bundle)[ Packagist](https://packagist.org/packages/dragonwize/dw-log-bundle)[ RSS](/packages/dragonwize-dw-log-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

DwLog Bundle
============

[](#dwlog-bundle)

IMPORTANT NOTE
--------------

[](#important-note)

Logging is a highly context sensitive with many different solutions, stacks, techs, services, etc. to fit an infinite number of use cases. This logging implementation is highly opinionated for specific situations. If this approach, resinates with your situation then copy or fork it.

This is not and will not be intended as a fully open community and will change at will, with no guarantee of breaking contracts.

Description
-----------

[](#description)

A Symfony bundle for logging application events to a database using Monolog and Doctrine DBAL, with a web interface for viewing and searching logs.

Features
--------

[](#features)

- **Database Logging**: Stores logs in a database table using Doctrine DBAL (no ORM)
- **Platform Agnostic**: Uses DBAL Schema representation - works with any database
- **Monolog Integration**: Custom Monolog handler that writes directly to the database
- **Web Interface**: Admin controller with pagination and search functionality
- **Advanced Search**: Filter logs by level, channel, and message content
- **Responsive UI**: Built with Tailwind CSS for a modern look
- **Lightweight**: Uses only DBAL without ORM overhead
- **Easy Setup**: Console command automatically creates the table

Installation
------------

[](#installation)

1. `composer require dragonwize/dw-log-bundle`
2. Optionally create a DBAL connection, and configure in `config/packages/dw_log.yaml`
3. `bin/console dw:log:create-table`
4. Configure monolog to save to the table in `config/packages/monolog.yaml`

Example monolog config:

```
monolog:
    handlers:
        dbal:
            type: service
            id: Dragonwize\DwLog\Monolog\DbalHandler
            level: debug
            channels: ["!event", "!doctrine"]
```

Ideal Setup
-----------

[](#ideal-setup)

Yes, storing in a SQL database is generally not performant for logs at scale. But if scale is not your concern and you want something free, easy, and with an opinionated DX then this works fine for those purposes. This code attempts to be performant only so far as it does not inflict on any other concerns.

### Use a separate DBAL connection

[](#use-a-separate-dbal-connection)

This allows you to:

- Store logs in a separate database
- Use different database engines (prod in PostgreSQL, local in Sqlite, etc.)
- Implement different backup/retention strategies per database
- Isolate log performance from application database

### Changing Log Retention

[](#changing-log-retention)

@todo

### Security

[](#security)

This is entirely up to you, if you are not comfortable securing the data stores and routes, then this may not be for you.

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance57

Moderate activity, may be stable

Popularity16

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/2adef9f2cee12fd0cad7eaaf10ef4023254ecfefd1799942a9a3b60db6c4ccd5?d=identicon)[dragonwize](/maintainers/dragonwize)

---

Top Contributors

[![dragonwize](https://avatars.githubusercontent.com/u/98619?v=4)](https://github.com/dragonwize "dragonwize (11 commits)")

### Embed Badge

![Health badge](/badges/dragonwize-dw-log-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/dragonwize-dw-log-bundle/health.svg)](https://phpackages.com/packages/dragonwize-dw-log-bundle)
```

###  Alternatives

[psr/log

Common interface for logging libraries

10.4k1.2B9.2k](/packages/psr-log)[itsgoingd/clockwork

php dev tools in your browser

5.9k27.6M94](/packages/itsgoingd-clockwork)[graylog2/gelf-php

A php implementation to send log-messages to a GELF compatible backend like Graylog2.

41838.2M138](/packages/graylog2-gelf-php)[bugsnag/bugsnag-psr-logger

Official Bugsnag PHP PSR Logger.

32132.5M2](/packages/bugsnag-bugsnag-psr-logger)[consolidation/log

Improved Psr-3 / Psr\\Log logger based on Symfony Console components.

15462.2M7](/packages/consolidation-log)[datadog/php-datadogstatsd

An extremely simple PHP datadogstatsd client

19124.6M15](/packages/datadog-php-datadogstatsd)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
