如何仅为在symfony中登录的用户创建自定义monolog文件

时间:2016-12-16 11:16:22

标签: php symfony monolog

我需要为用户实现一个简单的日志系统。在用户的捆绑操作中(例如),我想使用monolog和一些像这样的样本。

public function indexAction(){
        $logger = $this->get('logger');
        $logger->users('User {X} is logout');
}

并记录,在特定文件中保存此日志(users.log),例如

1 个答案:

答案 0 :(得分:4)

您可以通过频道实现这一目标。

可以创建自定义渠道(在这种情况下为contentType: false, )。创建处理程序url: "index.php?option=com_addproduct&task=sendMessages&format=json", ,仅记录user_channel的记录。在控制器中,请求通道的特定记录器。使用此记录器记录的所有内容都将转到user_handleruser_channel只会将该消息放入日志文件中。

user_channel

然后在控制器中,您可以直接访问日志处理程序。

user_handler

日志实体将写入# app/config/config.yml monolog: channels: ['user_channel'] handlers: user_handler: level: debug type: stream path: '%kernel.logs_dir%/user.log' channels: ['user_channel'] main: level: debug type: stream path: '%kernel.logs_dir%/log.log' channels: ['!user_channel'] #In case you don't want other handler to receive user_channel messages