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

时间:2014-10-20 17:51:53

标签: symfony doctrine-orm monolog

我目前正在一个表中记录所有与我的数据库(添加的用户,更新的用户,...)的交互。

来自我的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_added_users,log_updated_users等...

我在config.yml中配置了一个通道和一个处理程序 我已将记录器注入userService并使用我的频道标记它。

services:
    userService:
        class: Acme\Services\UserService
        arguments: ["@logger"]
        tags:
            - { name: monolog.logger, channel: my_channel }

我想知道我应该在哪个表中定义添加某个日志条目?我不认为我需要更多频道,因为我只能为注入的记录器定义一个频道(如上面的配置代码段所示)

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

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

感谢任何帮助:)

1 个答案:

答案 0 :(得分:0)

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

我可以这样说:

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

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