Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CIVIPLUS-487: Add community/feature-request#12 - Allow named logging …
…channels commit Include in CiviCRM 5.38 PR: civicrm#20079 Overview ---------------------------------------- Make it easier to route log messages based on their topic (e.g. CiviContribute-related logs vs CiviMail-related logs). Before ------ `Civi::log()` always returns the same instance of `LoggerInterface`, with no clear way to differentiate logs of different business subsystems. After ----- `Civi::log(...)` allows you to optionally request a `LoggerInterface` for a specific theme, e.g. ```php Civi::log('mail')->error('Failed to connect to SMTP server'); Civi::log('ipn')->warning('Transaction rejected by payment processor'); ``` Technical Details ----------------- A few things going on here: * Extensions may start using their own logs (`Civi::log('myext')`) without any special effort. * It is possible to replace or customize specific logs by defining a service `log.CHANNEL_NAME`. * The `psr_log_manager` is a service. An extension like https://lab.civicrm.org/extensions/monolog/ can replace the `psr_log_manager` and use the channel-name in its own way. There is a limitation here in that the list of channels is open-ended. It will be impossible to (eg) detect that a log-user has made a typo in the channel-name. However, this seems like the better trade-off if the alternative is that extensions face races during installation/uninstallation.
- Loading branch information