PHPackages                             nikolaposa/monolog-factory - 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. nikolaposa/monolog-factory

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

nikolaposa/monolog-factory
==========================

Configuration-based Monolog factory

3.1.2(2w ago)25253.4k↓44%62MITPHPPHP ^7.2 || ^8.0CI passing

Since Jun 11Pushed 1w ago3 watchersCompare

[ Source](https://github.com/nikolaposa/monolog-factory)[ Packagist](https://packagist.org/packages/nikolaposa/monolog-factory)[ RSS](/packages/nikolaposa-monolog-factory/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (9)Dependencies (14)Versions (10)Used By (2)

Monolog Factory
===============

[](#monolog-factory)

[![Build Status](https://github.com/nikolaposa/monolog-factory/workflows/Build/badge.svg?branch=master)](https://github.com/nikolaposa/monolog-factory/actions)[![Code Quality](https://camo.githubusercontent.com/8474b437134122ccda072a03b0fe8d05a1a92ee4676707560d0a10f9d7036976/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6e696b6f6c61706f73612f6d6f6e6f6c6f672d666163746f72792f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/nikolaposa/monolog-factory)[![Code Coverage](https://camo.githubusercontent.com/bf347163598a1859576a7edb07b1d65301642c82e72790e5f58b3002f62ed517/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6e696b6f6c61706f73612f6d6f6e6f6c6f672d666163746f72792f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/nikolaposa/monolog-factory/code-structure)[![Latest Version](https://camo.githubusercontent.com/7cfb0b1cbfcc96a4d73b44db339ec7f938ae08f7364f5f82276a143b8bc7160c/68747470733a2f2f706f7365722e707567782e6f72672f6e696b6f6c61706f73612f6d6f6e6f6c6f672d666163746f72792f762f737461626c65)](https://packagist.org/packages/nikolaposa/monolog-factory)[![PDS Skeleton](https://camo.githubusercontent.com/a8ce1f2a7b71f101b18fc0393ba5bf89b7a5b1f9d08a31b658ca0eab0064c0f6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7064732d736b656c65746f6e2d626c75652e737667)](https://github.com/php-pds/skeleton)

[Monolog](https://github.com/Seldaek/monolog) Factory that allows configuration-based creation of Logger objects.

In addition to the generic factory, this package features one to be used with [PSR-11](https://www.php-fig.org/psr/psr-11/) dependency injection containers.

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

[](#installation)

The preferred method of installation is via [Composer](http://getcomposer.org/). Run the following command to install the latest version of a package and add it to your project's `composer.json`:

```
composer require nikolaposa/monolog-factory
```

Usage
-----

[](#usage)

**Generic factory**

```
use Monolog\Formatter\HtmlFormatter;
use Monolog\Handler\NativeMailerHandler;
use Monolog\Logger;
use Monolog\Processor\PsrLogMessageProcessor;
use MonologFactory\LoggerFactory;

$loggerFactory = new LoggerFactory();

$logger = $loggerFactory->create('my_logger', [
    'handlers' => [
        [
            'name' => NativeMailerHandler::class,
            'params' => [
                'to' => 'test@example.com',
                'subject' => 'Test',
                'from' => 'noreply@example.com',
                'level' => Logger::ALERT,
            ],
            'formatter' => [
                'name' => HtmlFormatter::class,
            ],
        ],
    ],
    'processors' => [
        [
            'name' => PsrLogMessageProcessor::class,
        ],
    ],
]);
```

**DI container factory configuration**

```
use Monolog\Formatter\HtmlFormatter;
use Monolog\Handler\BufferHandler;
use Monolog\Handler\NativeMailerHandler;
use Monolog\Logger;
use Monolog\Processor\PsrLogMessageProcessor;
use MonologFactory\DiContainerLoggerFactory;

return [
    'logger' => [
        'logger1' => [
            'name' => 'logger1',
            'handlers' => [
                [
                    'name' => NativeMailerHandler::class,
                    'params' => [
                        'to' => 'test@example.com',
                        'subject' => 'Test',
                        'from' => 'noreply@example.com',
                        'level' => Logger::ALERT,
                    ],
                    'formatter' => [
                        'name' => HtmlFormatter::class,
                    ],
                ],
            ],
            'processors' => [
                [
                    'name' => PsrLogMessageProcessor::class,
                ],
            ],
        ],
        'logger2' => [
            'name' => 'logger2',
            'handlers' => [
                [
                    'name' => BufferHandler::class,
                    'params' => [
                        'handler' => [
                            '__class__' => NativeMailerHandler::class,
                            'to' => 'test@example.com',
                            'subject' => 'Test',
                            'from' => 'noreply@example.com',
                        ],
                        'buffer_limit' => 5,
                    ],
                    'processors' => [
                        [
                            'name' => MemoryUsageProcessor::class,
                        ],
                    ],
                ],
            ],
            'processors' => [
                [
                    'name' => PsrLogMessageProcessor::class,
                ],
            ],
        ],
    ],
    'di' => [
        'factories' => [
            'Logger1' => new DiContainerLoggerFactory('logger1'),
            //... or more preferred/optimal way:
            'Logger2' => [DiContainerLoggerFactory::class, 'logger2'],
        ],
    ],
];
```

See [more examples](examples).

Credits
-------

[](#credits)

- [Nikola Poša](https://github.com/nikolaposa)
- [All Contributors](../../contributors)

License
-------

[](#license)

Released under MIT License - see the [License File](LICENSE) for details.

###  Health Score

63

—

FairBetter than 99% of packages

Maintenance98

Actively maintained with recent releases

Popularity45

Moderate usage in the ecosystem

Community18

Small or concentrated contributor base

Maturity74

Established project with proven stability

 Bus Factor1

Top contributor holds 92.2% 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.

###  Release Activity

Cadence

Every ~411 days

Recently: every ~702 days

Total

9

Last Release

17d ago

Major Versions

0.1.0 → 1.0.02017-06-15

1.0.0 → 2.0.02017-09-22

2.0.2 → 3.0.02019-11-30

PHP version history (3 changes)0.1.0PHP ^7.0

3.0.0PHP ^7.2

3.1.0PHP ^7.2 || ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/af5242d5454968c532cb32c3855f182f92ea1f833a67c03088aca866ddfb6ef6?d=identicon)[nikolaposa](/maintainers/nikolaposa)

---

Top Contributors

[![nikolaposa](https://avatars.githubusercontent.com/u/6012807?v=4)](https://github.com/nikolaposa "nikolaposa (71 commits)")[![arueckauer](https://avatars.githubusercontent.com/u/1815979?v=4)](https://github.com/arueckauer "arueckauer (4 commits)")[![acelaya](https://avatars.githubusercontent.com/u/2719332?v=4)](https://github.com/acelaya "acelaya (2 commits)")

---

Tags

factorymonologpsr-11containerfactorypsr11monolog

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/nikolaposa-monolog-factory/health.svg)

```
[![Health](https://phpackages.com/badges/nikolaposa-monolog-factory/health.svg)](https://phpackages.com/packages/nikolaposa-monolog-factory)
```

###  Alternatives

[laravel/framework

The Laravel Framework.

34.8k543.8M20.1k](/packages/laravel-framework)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)[phpro/grumphp

A composer plugin that enables source code quality checks.

4.3k16.7M1.0k](/packages/phpro-grumphp)[spatie/flare-client-php

Send PHP errors to Flare

177161.5M23](/packages/spatie-flare-client-php)[naoray/laravel-github-monolog

Log driver to store logs as github issues

10823.1k](/packages/naoray-laravel-github-monolog)

PHPackages © 2026

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