Zend Log记录每个日志事件的用户名

时间:2014-04-08 16:24:17

标签: zend-framework

我正在使用Zend 1.12。

我想知道这个解决方案是否有效。我想为当前登录的用户添加用户名或用户ID。

在我的Bootstrap文件中,我有:

protected function _initLogger(){
    $dt=new DateTime();
    $writer = new Zend_Log_Writer_Stream(ROOT_DIR.'/logs/log'.$dt->format('Y-m-d').'.txt','a+');
    $logger = new Zend_Log($writer);
    Zend_Registry::set('logger', $logger);
}

我不确定这一点,但如果我将其更改为:

protected function _initLogger(){
        $dt=new DateTime();
        $writer = new Zend_Log_Writer_Stream(ROOT_DIR.'/logs/log'.$dt->format('Y-m-d').'.txt','a+');
        $format = '%uid% %username% %timestamp% %priorityName% (%priority%): %message%' . PHP_EOL;
        $writer->setFormatter(new Zend_Log_Formatter_Simple($format));
        $logger = new Zend_Log($writer);
        $session=new Zend_Session_Namespace('Default');
        if(isset($session->user)){
            $logger->setEventItem('username', $user->username);
            $logger->setEventItem('uid', $user->userid);

        }
        Zend_Registry::set('logger', $logger);
}

当mutliple用户同时工作时,这会有用吗?据我所知,Zend_Registry是应用程序范围(静态),因此适用于会话。

有没有人可以替代?

0 个答案:

没有答案