Fixed Logger not being serializable anymore (#1792)
3.3.0
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)
Fixed handling of falsey display_errors string values (#1804)
3.3.1 (2023-02-06)
Fixed Logger not being serializable anymore (#1792)
3.3.0 (2023-02-06)
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)
Monolog\Logger::API can be used to distinguish between a Monolog 3, 2 or 1
install when writing integration code.
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.
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.
Logger
Logger::DEBUG, Logger::ERROR, etc. are now deprecated in favor of the 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::$levels has been removed.
Logger::getLevels has been removed in favor of Monolog\Level::VALUES or Monolog\Level::cases().
setExceptionHandler now requires a Closure instance and not just any callable.
HtmlFormatter
If you redefined colors in the $logLevels property you must now override the
getLevelColor method instead.
NormalizerFormatter
A new normalizeRecord method is available as an extension point which is called
only when converting the LogRecord to an array. You may need this if you overrode
format previously as parent::format now needs to receive a LogRecord still
so you cannot modify it before.
AbstractSyslogHandler
If you redefined syslog levels in the $logLevels property you must now override the
toSyslogPriority method instead.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps monolog/monolog from 2.9.2 to 3.5.0.
Release notes
Sourced from monolog/monolog's releases.
... (truncated)
Changelog
Sourced from monolog/monolog's changelog.
... (truncated)
Upgrade guide
Sourced from monolog/monolog's upgrade guide.
... (truncated)
Commits
c915e26
Update changelog0980b92
Merge branch '2.x'681bb4f
Add logo/favicon, closes #1849b0f4bf7
Fix LogRecord "extra" data leaking between handlers (#1819)8ff4ab5
Add ability to indent stack traces in LineFormatter, fixes #18355d317e2
Fix tests usage1feb860
Added possibility to set max length for level name in LineFormatter70f6ca0
Merge branch '2.x'f542639
Skip mongodb extension if extension is not installed (#1825)8813064
Let indexed arrays to support inline linebreaks in LineFormatter (#1818)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show