-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[MonologBridge] Deprecate Logger
class in favor of Symfony\Bridge\Monolog\Monolog
#51229
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…Monolog\Monolog`
680d394
to
b5e821e
Compare
Thanks for the review, I pushed a new version |
@@ -5,6 +5,7 @@ CHANGELOG | |||
--- | |||
|
|||
* Add native return type to `Logger::clear()` and to `DebugProcessor::clear()` | |||
* Deprecate `Logger` class in favor of `Symfony\Bridge\Monolog\Monolog` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
to me, this new class should not be introduced either.
the removal of the debug loggers should either be implemented using a service configurator or we should make our debug processor itself able to behave like a no-op for environments where we don't want to collect those debug logs.
And the DebugLoggerInterface should be solved by injecting the DebugHandler in the collector instead of the main logger instance (which would be perfectly supported but is not wired this way in MonologBundle).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's first discuss about removing the @final
in Seldaek/monolog#1827
Anyone up to do the PR implementing what @stof describes?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for being blunt but this looks like a mess to me. You'd get a Monolog class which you cannot even pass to something expecting a Logger instance (which you would right now do if you want to call reset()
or smth on it.
Why not inject a DebugHandler in the Logger at runtime when in development for example?
Or worst case if you must extend Logger then go ahead and extend it, I just marked it final because people were extending it and doing crazy shit which then broke with new features. If you know what you are doing it is IMO safe to extend, and it's why it is just a @final
and not a proper final
keyword. I don't want to prevent people, but I want to make it clear that it voids the warranty if you do extend.
Maybe it'd be worth layout out what exactly you are trying to solve here, because I am not 100% sure I am up to speed. I'm happy to try and help find a solution, but removing @final
is a no go for me right now.
2f3781a
to
b5e821e
Compare
Closing in favor of #51284, thanks for pushing this forward. |
…iring of debug loggers (nicolas-grekas) This PR was merged into the 6.4 branch. Discussion ---------- [FrameworkBundle][HttpKernel][MonologBridge] Revisit wiring of debug loggers | Q | A | ------------- | --- | Branch? | 6.4 | Bug fix? | no | New feature? | yes | Deprecations? | yes | Tickets | - | License | MIT | Doc PR | - Replaces #51229 Implements the suggestions from `@stof` and `@Seldaek` in #51229 (comment) It turns our we had almost everything available. This is mostly a matter of wiring. * Deprecate class `Symfony\Bridge\Monolog\Logger` * Deprecate `AddDebugLogProcessorPass::configureLogger()` * Add `DebugLoggerConfigurator` to HttpKernel, which wires `DebugProcessor` when desired Bonus: * Add argument `$debug` to HttpKernel's `Logger` * Deprecate `EnableLoggerDebugModePass` in favor of the previous Commits ------- 8a6a410 [HttpKernel][MonologBridge][FrameworkBundle] Revisit wiring of debug loggers
For the record, I imported the new Monolog class in Monolog, and I ran the test suite and it was okay 👍🏼 all green except one failure, but it's a monolog issue I guess