Symfony 将(Mono)日志写入不同的数据库表

Symfony 将(Mono)日志写入不同的数据库表,symfony,doctrine-orm,monolog,Symfony,Doctrine Orm,Monolog,我当前正在将所有交互记录到我的数据库中添加的用户、更新的用户。。。在一张桌子里 my userService中的一个示例: public function addUserAction() { $this->logger->alert("Added user!"); // Code that adds the user to the database (not relevant for my question) // ... } public functi

我当前正在将所有交互记录到我的数据库中添加的用户、更新的用户。。。在一张桌子里

my userService中的一个示例:

public function addUserAction() 
{
    $this->logger->alert("Added user!");

    // Code that adds the user to the database (not relevant for my question)
    // ...
}

public function updateUserAction($user)
{
    $this->logger->alert("Updated user!");

    // Code that updates the user to the database (not relevant for my question)
    // ...
}
现在我希望有如下单独的表:log\u添加的用户,log\u更新的用户,等等

我在config.yml中配置了一个通道和一个处理程序 我已经将记录器注入到userService中,并用我的频道对其进行了标记

services:
    userService:
        class: Acme\Services\UserService
        arguments: ["@logger"]
        tags:
            - { name: monolog.logger, channel: my_channel }
我想知道应该在哪里定义在哪个表中添加某个日志条目?我不认为我需要更多的通道,因为我只能为注入的记录器定义一个通道,如上面的配置代码段所示

所以我想为每个db表添加更多的处理程序。问题是:在编写日志时,它将通过所有处理程序,从而将相同的日志添加到所有表中

或者我应该把我的updateUserAction放在另一个服务中,这样我就可以使用另一个频道了


感谢您的帮助:

我发现,对于您创建的每个频道,都会自动为您创建一个服务。 所以我只是在userService中注入了另一个记录器,并用新的通道标记它们

services:
    userService:
        class: Acme\Services\UserService
        arguments: ["@logger"]
        tags:
            - { name: monolog.logger, channel: my_channel }
这样我可以说,例如:

public function addUserAction()
{
    $this->logger->alert("user added");
}

public function updateUserAction($user)
{
    $this->updateLogger->alert("user updated");
}