Skip to content

Releases: Seldaek/monolog

3.3.0

06 Feb 13:17
852643b
Compare
Choose a tag to compare
  • Deprecated FlowdockHandler & Formatter as the flowdock service was shutdown (#1748)
  • Added ClosureContextProcessor to allow delaying the creation of context data by setting a Closure in context which is called when the log record is used (#1745)
  • Added an ElasticsearchHandler option to set the op_type to create instead of the default index (#1766)
  • Added support for enum context values in PsrLogMessageProcessor (#1773)
  • Added graylog2/gelf-php 2.x support (#1747)
  • Improved BrowserConsoleHandler logging to use more appropriate methods than just console.log in the browser (#1739)
  • Fixed GitProcessor not filtering correctly based on Level (#1749)
  • Fixed WhatFailureGroupHandler not catching errors happening inside close() (#1791)
  • Fixed datetime field in GoogleCloudLoggingFormatter (#1758)
  • Fixed infinite loop detection within Fibers (#1753)
  • Fixed AmqpHandler->setExtraAttributes not working with buffering handler wrappers (#1781)

2.9.1

06 Feb 13:47
f259e2b
Compare
Choose a tag to compare
  • Fixed Logger not being serializable anymore (#1792)

2.9.0

05 Feb 13:09
e1c0ae1
Compare
Choose a tag to compare
  • Deprecated FlowdockHandler & Formatter as the flowdock service was shutdown (#1748)
  • Added support for enum context values in PsrLogMessageProcessor (#1773)
  • Added graylog2/gelf-php 2.x support (#1747)
  • Improved BrowserConsoleHandler logging to use more appropriate methods than just console.log in the browser (#1739)
  • Fixed WhatFailureGroupHandler not catching errors happening inside close() (#1791)
  • Fixed datetime field in GoogleCloudLoggingFormatter (#1758)
  • Fixed infinite loop detection within Fibers (#1753)
  • Fixed AmqpHandler->setExtraAttributes not working with buffering handler wrappers (#1781)

3.2.0

24 Jul 12:02
305444b
Compare
Choose a tag to compare
  • 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)

2.8.0

24 Jul 12:02
7204886
Compare
Choose a tag to compare
  • Deprecated CubeHandler and PHPConsoleHandler as both projects are abandoned and those should not be used anymore (#1734)
  • Added RFC 5424 level (7 to 0) support to Logger::log and Logger::addRecord to increase interoperability (#1723)
  • 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)

3.1.0

09 Jun 09:09
0c37549
Compare
Choose a tag to compare
  • 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 v2/v3 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)

2.7.0

09 Jun 09:09
5579edf
Compare
Choose a tag to compare
  • 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)
  • 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)

1.27.1

09 Jun 08:55
904713c
Compare
Choose a tag to compare
  • Fixed MandrillHandler support for SwiftMailer 6 (#1676)
  • Fixed StreamHandler chunk size (backport from #1552)

3.0.0

10 May 10:42
60ad518
Compare
Choose a tag to compare

This is mostly a cleanup release offering stronger type guarantees for integrators with the
array->object/enum changes, but there is no big new feature for end users.

See UPGRADE notes for details on all breaking changes especially if you are extending/implementing Monolog classes/interfaces.

Noteworthy BC Breaks:

  • The minimum supported PHP version is now 8.1.0.
  • Log records have been converted from an array to a Monolog\LogRecord object
    with public (and mostly readonly) properties. e.g. instead of doing
    $record['context'] use $record->context.
    In formatters or handlers if you rather need an array to work with you can use $record->toArray()
    to get back a Monolog 1/2 style record array. This will contain the enum values instead of enum cases
    in the level and level_name keys to be more backwards compatible and use simpler data types.
  • FormatterInterface, HandlerInterface, ProcessorInterface, etc. changed to contain LogRecord $record
    instead of array $record parameter types. If you want to support multiple Monolog versions this should
    be possible by type-hinting nothing, or array|LogRecord if you support PHP 8.0+. You can then code
    against the $record using Monolog 2 style as LogRecord implements ArrayAccess for BC.
    The interfaces do not require a LogRecord return type even where it would be applicable, but if you only
    support Monolog 3 in integration code I would recommend you use LogRecord return types wherever fitting
    to ensure forward compatibility as it may be added in Monolog 4.
  • Log levels are now stored as an enum Monolog\Level
  • Removed deprecated SwiftMailerHandler, migrate to SymfonyMailerHandler instead.
  • ResettableInterface::reset() now requires a void return type.
  • All properties have had types added, which may require you to do so as well if you extended
    a Monolog class and declared the same property.

New deprecations:

  • Logger::DEBUG, Logger::ERROR, etc. are now deprecated in favor of the Monolog\Level enum.
    e.g. instead of Logger::WARNING use Level::Warning if you need to pass the enum case
    to Monolog or one of its handlers, or Level::Warning->value if you need the integer
    value equal to what Logger::WARNING was giving you.
  • Logger::getLevelName() is now deprecated.

2.6.0

10 May 09:45
2479189
Compare
Choose a tag to compare
  • Deprecated SwiftMailerHandler, use SymfonyMailerHandler instead
  • Added SymfonyMailerHandler (#1663)
  • Added ElasticSearch 8.x support to the ElasticsearchHandler (#1662)
  • Added a way to filter/modify stack traces in LineFormatter (#1665)
  • Fixed UdpSocket not being able to reopen/reconnect after close()
  • Fixed infinite loops if a Handler is triggering logging while handling log records