8000 [MonologBridge] Deprecate `Logger` class in favor of `Symfony\Bridge\Monolog\Monolog` by lyrixx · Pull Request #51229 · symfony/symfony · GitHub
[go: up one dir, main page]

Skip to content

[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

Closed
wants to merge 1 commit into from

Conversation

lyrixx
Copy link
Member
@lyrixx lyrixx commented Aug 2, 2023
Q A
Branch? 6.4
Bug fix? no
New feature? kind of
Deprecations? yes
Tickets
License MIT
Doc PR

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

@lyrixx lyrixx force-pushed the logger-deprecated branch from 680d394 to b5e821e Compare August 2, 2023 15:07
@lyrixx
Copy link
Member Author
lyrixx commented Aug 2, 2023

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`
Copy link
Member

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).

Copy link
Member

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?

Copy link
Member

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.

@nicolas-grekas
Copy link
Member

Closing in favor of #51284, thanks for pushing this forward.

@lyrixx lyrixx deleted the logger-deprecated branch August 5, 2023 12:58
nicolas-grekas added a commit that referenced this pull request Aug 5, 2023
…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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants
0