Reset Loggers on Messenger Workers
One of the most important elements of the Messenger component are the workers that handle and process the messages. In Symfony 4.4 we improved workers to automatically clear the Doctrine entity manager after each message is processed (or failed) to avoid having issues with outdated entities.
In Symfony 5.3 we've improved workers again to reset loggers automatically after each message is handled (or failed). This will prevent issues like keeping previous log messages in memory when using buffered log handlers. Upgrading your application to Symfony 5.3 will enable this feature automatically, so you don't need to configure anything in your application or change your code.
Log Deprecations into a Separate File
Symfony's backward compatibility promise ensures that you can update your applications between minor and patch versions of Symfony without having to change your code to make it work with the new or changed Symfony features.
The key of this policy are the deprecations, which are messages that warn you early about the features that will change/disappear in future major versions of Symfony. When running tests with the Symfony PHPUnit bridge you see the list of deprecations in the console output. However, in complex applications this list is so long that is not practical.
That's why in Symfony 5.3 you have the option to log deprecations into a
separate file when running tests. To do so, use the new logFile
option
of the SYMFONY_DEPRECATIONS_HELPER
environment variable:
1
$ SYMFONY_DEPRECATIONS_HELPER='logFile=/path/to/deprecations.log' ./vendor/bin/simple-phpunit
You can also map PHP error level to PSR log level:
I'd go one step further, and make deprecations be logged to their own separate file all of the time ;-P
Actually Symfony 5.3 is not sufficient to enable loggers resetting on workers. MonologBundle must be at least at version 3.8.0 (not released yet).
Will this record be recorded every time it runs?
Chinese translation of this article (本文中文译):https://phpzlc.github.io/blog/8.html