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.1(4y ago)25226.9k—6.6%52MITPHPPHP ^7.2 || ^8.0

Since Jun 11Pushed 4y 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 1mo ago

READMEChangelog (8)Dependencies (7)Versions (9)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

43

—

FairBetter than 91% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity45

Moderate usage in the ecosystem

Community17

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor1

Top contributor holds 96.9% 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 ~216 days

Recently: every ~267 days

Total

8

Last Release

1745d 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 (62 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

[maxbanton/cwh

AWS CloudWatch Handler for Monolog library

42515.3M27](/packages/maxbanton-cwh)[phpnexus/cwh

AWS CloudWatch Handler for Monolog library

393.2M7](/packages/phpnexus-cwh)[logtail/monolog-logtail

Logtail handler for Monolog

233.2M3](/packages/logtail-monolog-logtail)[bref/monolog-bridge

Monolog formatter optimized for AWS Lambda and CloudWatch

111.2M3](/packages/bref-monolog-bridge)

PHPackages © 2026

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