monolog is a free, open source monitoring & observability project written in PHP and released under MIT. It has 21,406 GitHub stars, 1,910 forks and 3 open issues, and was last pushed 8 days ago. On this registry it ranks #16 of 97 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available. It gained 1 stars over the last 3 tracked days.

What is monolog?

What it is

Monolog is a logging library for PHP that sends log records to files, sockets, inboxes, databases, and various web services. It ships with the handlers, formatters, and processors needed to route records where they belong, and special handlers allow more advanced logging strategies than a single output stream. The library lives in the PHP ecosystem and is distributed through Packagist as monolog/monolog. It is released under the MIT license and has been developed for sixteen years, with more than twenty-one thousand stars and roughly nineteen hundred forks on GitHub.

The concrete problem it solves is that PHP applications otherwise need bespoke glue every time log output must change destination, format, or severity. Monolog implements the PSR-3 logger interface, so libraries and applications can type-hint against that interface and stay portable between compatible loggers. Because it follows that standard, a project can adopt Monolog now and still swap in another PSR-3 logger later without rewriting the call sites. As of version 1.11.0 the public APIs also accept PSR-3 log levels, although the library still uses its own internal level scheme because it predates the specification.

Key capabilities

  • Implements the PSR-3 logger interface for type-hinting in libraries and applications.
  • Sends log records to files, sockets, inboxes, databases, and various web services through handlers.
  • Provides formatters and processors for shaping and enriching log records.
  • Includes utility classes alongside the core logging path.
  • Supports extending the library with custom handlers and related components.
  • Accepts PSR-3 log levels in public APIs since version 1.11.0.
  • Documents the log record structure and offers third-party handlers, formatters, and processors through a wiki.

Who uses it and how

  • Symfony ships with Monolog out of the box, so applications built on that framework log through it by default.
  • Laravel and Lumen also come with Monolog out of the box.
  • PPI, XOOPS 2.6, and Aura.Web_Project include it out of the box, while CakePHP is usable with Monolog through the cakephp-monolog plugin.
  • Any framework or library that follows PSR-3 can be combined with Monolog easily because it implements that interface.
  • Teams wanting commercial backing can use
project readme (upstream, from github) — read inline

Monolog - Logging for PHP Continuous Integration

Total Downloads Latest Stable Version

Note This is the documentation for Monolog 3.x, if you are using older releases see the documentation for Monolog 2.x or Monolog 1.x

Monolog sends your logs to files, sockets, inboxes, databases and various web services. See the complete list of handlers below. Special handlers allow you to build advanced logging strategies.

This library implements the PSR-3 interface that you can type-hint against in your own libraries to keep a maximum of interoperability. You can also use it in your applications to make sure you can always use another compatible logger at a later time. As of 1.11.0 Monolog public APIs will also accept PSR-3 log levels. Internally Monolog still uses its own level scheme since it predates PSR-3.


Sponsored by:
Better Stack
  Better Stack lets you centralize, search, and visualize your logs.


Installation

Install the latest version with

composer require monolog/monolog

Basic Usage

<?php

use Monolog\Level;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler('path/to/your.log', Level::Warning));

// add records to the log
$log->warning('Foo');
$log->error('Bar');

Documentation

Support Monolog Financially

Get supported Monolog and help fund the project with the Tidelift Subscription or via GitHub sponsorship.

Tidelift delivers commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use.

Third Party Packages

Third party handlers, formatters and processors are listed in the wiki. You can also add your own there if you publish one.

About

Requirements

  • Monolog ^3.0 works with PHP 8.1 or above.
  • Monolog ^2.5 works with PHP 7.2 or above.
  • Monolog ^1.25 works with PHP 5.3 up to 8.1, but is not very maintained anymore and will not receive PHP support fixes anymore.

Support

Monolog 1.x support is somewhat limited at this point and only important fixes will be done. You should migrate to Monolog 2 or 3 where possible to benefit from all the latest features and fixes.

Submitting bugs and feature requests

Bugs and feature request are tracked on GitHub

Framework Integrations

Author

Jordi Boggiano - -
See also the list of contributors who participated in this project.

License

Monolog is licensed under the MIT License - see the LICENSE file for details

Acknowledgements

This library is heavily inspired by Python's Logbook library, although most concepts have been adjusted to fit to the PHP world.

Frequently asked questions

Is monolog free to use?

monolog is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does monolog do?

Sends your logs to files, sockets, inboxes, databases and various web services

What is monolog written in?

monolog is primarily written in PHP. Its source is publicly available at https://github.com/Seldaek/monolog, and it has 21,406 GitHub stars.