我正在开发一个 symfony 项目,我们已经在使用来自私人库的自定义格式化程序。
monolog:
handlers:
main:
type: stream
path: "%log_file_path%"
level: "%log_level%"
formatter: logstash_formatter_private_lib
我想添加一个新的格式化程序来过滤敏感数据。这就是为什么我为此创建了一个新处理器:
<?php
namespace App\CoreBundle\Logger;
use Monolog\Processor\ProcessorInterface;
class PIIFilterProcessor implements ProcessorInterface
{
private $piiFields = ['password', 'email', 'phone', 'address'];
public function __invoke(array $record)
{
// Loop through each PII field and unset it if exists
foreach ($this->piiFields as $field) {
if (isset($record['context'][$field])) {
$record['context'][$field] = '***FILTERED***';
}
}
return $record;
}
}
如何在已经运行的处理器/格式化程序之后或之前执行该处理器/格式化程序?
您需要按照
此处所述使用
monolog.processor
标记您的处理器:
<?php
namespace App\CoreBundle\Logger;
use Monolog\Processor\ProcessorInterface;
use Monolog\Attribute\AsMonologProcessor;
#[AsMonologProcessor]
class PIIFilterProcessor
{