A Psalm plugin to check psr/log (PSR-3) usage.
- Suppress
ImplicitToStringCast
psalm errors when objects with a__toString()
method are used as message - Checks that all placeholders used in a message string are in the context array
This plugin checks for missing context keys for placeholders:
/** @var Psr\Log\LoggerInterface $logger */
$logger->info('User {username} logged in at {datetime}', [
'username' => 'user-username',
]);
Include the plugin in your psalm.xml
config file.
<psalm>
<plugins>
<pluginClass class="Facile\Psalm\PsrLogPlugin\Plugin"/>
</plugins>
</psalm>
if you want to always require keys in context, you can configure the plugin with the requiredKey
:
<psalm>
<plugins>
<pluginClass class="Facile\Psalm\PsrLogPlugin\Plugin">
<requiredKey>requestId</requiredKey>
<requiredKey>environment</requiredKey>
</pluginClass>
</plugins>
</psalm>
if you want to ignore requirement for some key in context, you can configure the plugin with the ignoredKey
.
This is useful when you have your logger that automatically injects it.
<psalm>
<plugins>
<pluginClass class="Facile\Psalm\PsrLogPlugin\Plugin">
<ignoredKey>requestId</ignoredKey>
</pluginClass>
</plugins>
</psalm>