All Versions
79
Latest Version
Avg Release Cycle
141 days
Latest Release
162 days ago

Changelog History
Page 1

  • v3.10.0 Changes

    January 02, 2026
    • โž• Added automatic directory cleanup in RotatingFileHandler (#2000)
    • โž• Added timezone-aware file rotation to RotatingFileHandler (#1982)
    • โž• Added support for mongodb/mongodb 2.0+ (#1998)
    • โž• Added NoDiscard attribute to TestHandler methods to ensure the result is used (#2013)
    • Fixed JsonFormatter crashing if __toString throws while normalizing data (#1968)
    • ๐Ÿ›  Fixed PHP 8.5 deprecation warnings (#1997, #2009)
    • ๐Ÿ›  Fixed DeduplicatingHandler collecting duplicate logs if the file cannot be locked (2e97231)
    • ๐Ÿ›  Fixed GelfMessageFormatter to use integers instead of bool for gelf 1.1 support (#1973)
    • ๐Ÿ›  Fixed empty stack traces being output anyway (#1979)
    • ๐Ÿ›  Fixed StreamHandler not reopening the file if the inode changed (#1963)
    • ๐Ÿ›  Fixed TelegramBotHandler sending empty messages (#1992)
    • ๐Ÿ›  Fixed file paths in stack traces containing backslashes on windows, always using / now to unify logs (#1980)
    • ๐Ÿ›  Fixed RotatingFileHandler unlink errors not being suppressed correctly (#1999)

    Full Changelog : 3.9.0...3.10.0

  • v3.9.0 Changes

    March 24, 2025
    • โš  BC Warning: Fixed SendGridHandler to use the V3 API as V2 is now shut down, but this requires a new API key (#1952)
    • โœ… Deprecated Monolog\Test\TestCase in favor of Monolog\Test\MonologTestCase (#1953)
    • โž• Added extension point for NativeMailerHandler::mail (#1948)
    • โž• Added setHandler method to BufferHandler to modify the nested handler at runtime (#1946)
    • ๐Ÿ›  Fixed date format in ElasticsearchFormatter to use +00:00 vs +0000 tz identifiers (#1942)
    • ๐Ÿ›  Fixed GelfMessageFormatter handling numeric context/extra keys (#1932)

    Full Changelog : 3.8.1...3.9.0

  • v3.8.1 Changes

    December 05, 2024
    • ๐Ÿ—„ Deprecated Monolog\DateTimeImmutable in favor of Monolog\JsonSerializableDateTimeImmutable (#1928)
    • ๐Ÿ›  Fixed gelf keys not being valid when context/extra data keys have spaces in them (#1927)
    • ๐Ÿ›  Fixed empty lines appearing in the stack traces when a custom formatter returned null (#1925)

    Full Changelog : 3.8.0...3.8.1

  • v3.8.0 Changes

    November 12, 2024
    • โž• Added $fileOpenMode param to StreamHandler to define a custom fopen mode to open the log file (#1913)
    • ๐Ÿ›  Fixed PHP 8.4 deprecation notices (#1903)
    • โž• Added ability to extend/override IntrospectionProcessor (#1899)
    • โž• Added $timeout param to ProcessHandler to configure the stream_select() timeout to avoid blocking too long (default is 1.0 sec) (#1916)
    • ๐Ÿ›  Fixed JsonFormatter batch handling to normalize records individually to make sure they look the same as if they were handled one by one - this leads to JsonFormatter::normalizeRecord now possibly returning stdClass instances instead of [] for empty context/extra data which may cause issues if you extend normalizeRecord, see #1906 (comment) (#1906)
    • ๐Ÿ›  Fixed StreamHandler handling of write failures so that it now closes/reopens the stream and retries the write once before failing (#1882)
    • ๐Ÿ›  Fixed StreamHandler error handler causing issues if a stream handler triggers an error (#1866)
    • ๐Ÿ›  Fixed StreamHandler::reset not closing the stream, so that it would fail to write in some cases with long running processes (#1862)
    • ๐Ÿ›  Fixed RotatingFileHandler issue where rotation does not happen in some long running processes (#1905)
    • ๐Ÿ›  Fixed JsonFormatter handling of incomplete classes (#1834)
    • ๐Ÿ›  Fixed RotatingFileHandler bug where rotation could sometimes not happen correctly (#1905)

    Full Changelog : 3.7.0...3.8.0

  • v3.7.0 Changes

    June 28, 2024
    • โž• Added NormalizerFormatter->setBasePath(...) (and JsonFormatter by extension) that allows removing the project's path from the stack trace output (47e301d)
    • ๐Ÿ›  Fixed JsonFormatter handling of incomplete classes (#1834)
    • ๐Ÿ›  Fixed private error handlers causing problems with custom StreamHandler implementations (#1866)

    Full Changelog : 3.6.0...3.7.0

  • v3.6.0 Changes

    April 12, 2024
    • โž• Added LineFormatter->setBasePath(...) that allows removing the project's path from the stack trace output (#1873)
    • โž• Added $includeExtra option in PsrHandler to also use extra data to replace placeholder values in the message (#1852)
    • โž• Added ability to customize what is a duplicated message by extending the DeduplicationHandler (#1879)
    • โž• Added handling for using GelfMessageFormatter together with the AmqpHandler (#1869)
    • โž• Added ability to extend GoogleCloudLoggingFormatter (#1859)
    • ๐Ÿ›  Fixed __toString failures in context data crashing the normalization process (#1868)
    • ๐Ÿ›  Fixed PHP 8.4 deprecation warnings (#1874)

    Full Changelog : 3.5.0...3.6.0

  • v3.5.0 Changes

    October 27, 2023
    • โž• Added ability to indent stack traces in LineFormatter via e.g. indentStacktraces(' ') (#1835)
    • โž• Added ability to configure a max level name length in LineFormatter via e.g. setMaxLevelNameLength(3) (#1850)
    • โž• Added support for indexed arrays (i.e. [] and not {} arrays once json serialized) containing inline linebreaks in LineFormatter (#1818)
    • โž• Added WithMonologChannel attribute for integrators to use to configure autowiring (#1847)
    • ๐Ÿ›  Fixed log record extra data leaking between handlers that have handler-specific processors set (#1819)
    • ๐Ÿ›  Fixed LogglyHandler issue with record level filtering (#1841)
    • ๐Ÿ›  Fixed display_errors parsing in ErrorHandler which did not support string values (#1804)
    • ๐Ÿ›  Fixed bug where the previous error handler would not be restored in some cases where StreamHandler fails (#1815)
    • ๐Ÿ›  Fixed normalization error when normalizing incomplete classes (#1833)

    Full Changelog : 3.4.0...3.5.0

  • v3.2.0 Changes

    July 24, 2022
    • Deprecated CubeHandler and PHPConsoleHandler as both projects are abandoned and those should not be used anymore (#1734)
    • Marked Logger @final as it should not be extended, prefer composition or talk to us if you are missing something
    • Added RFC 5424 level (7 to 0) support to Logger::log and Logger::addRecord to increase interoperability (#1723)
    • Added SyslogFormatter to output syslog-like files which can be consumed by tools like lnav (#1689)
    • Added support for __toString for objects which are not json serializable in JsonFormatter (#1733)
    • Added GoogleCloudLoggingFormatter (#1719)
    • Added support for Predis 2.x (#1732)
    • Added AmqpHandler->setExtraAttributes to allow configuring attributes when using an AMQPExchange (#1724)
    • Fixed serialization/unserialization of handlers to make sure private properties are included (#1727)
    • Fixed allowInlineLineBreaks in LineFormatter causing issues with windows paths containing \n or \r sequences (#1720)
    • Fixed max normalization depth not being taken into account when formatting exceptions with a deep chain of previous exceptions (#1726)
    • Fixed PHP 8.2 deprecation warnings (#1722)
    • Fixed rare race condition or filesystem issue where StreamHandler is unable to create the directory the log should go into yet it exists already (#1678)
  • v3.1.0 Changes

    June 09, 2022
    • Added $datetime parameter to Logger::addRecord as low level API to allow logging into the past or future (#1682)
    • Added Logger::useLoggingLoopDetection to allow disabling cyclic logging detection in concurrent frameworks (#1681)
    • Fixed handling of fatal errors if callPrevious is disabled in ErrorHandler (#1670)
    • Fixed interop issue by removing the need for a return type in ProcessorInterface (#1680)
    • Marked the reusable Monolog\Test\TestCase class as @internal to make sure PHPStorm does not show it above PHPUnit, you may still use it to test your own handlers/etc though (#1677)
    • Fixed RotatingFileHandler issue when the date format contained slashes (#1671)
  • v3.0.0 Changes

    May 10, 2022

    ๐Ÿ”„ Changes from RC1

    • The Monolog\LevelName enum does not exist anymore, use Monolog\Level->getName() instead.