2011-08-12 39 views
0

在我的引導文件中,我啓動記錄器,每件事情都很好。我現在需要的是記錄器還會記錄zend_auth實例給出的user_id。在這裏,我記錄儀啓動:zend框架驗證在記錄器中的引導

public function _initLogger(){ 

    $resource = $this->getPluginResource('db'); 
$dbAdapter = $resource->getDbAdapter(); 
    $columnMapping = array(
     'level' => 'priorityName', 
     'priority' => 'priority', 
     'message' => 'message', 
     'created' => 'timestamp', 
     'user_agent'=> 'user_agent', 
     'get_vars' => 'get_vars', 
     'post_vars' => 'post_vars', 
     'ip' => 'ip', 
     'id_user' => 'id_user', 
    ); 

    $auth = Zend_Auth::getInstance(); 

    $writerDb = new Zend_Log_Writer_Db($dbAdapter, 'tbl_log', $columnMapping); 
    $logger = new Zend_Log($writerDb); 

    $logger->setEventItem('datetime',date('Y-m-d H:i:s')); 
    $logger->setEventItem('user_agent',$_SERVER['HTTP_USER_AGENT']); 
    $logger->setEventItem('get_vars',print_r($_GET,true)); 
    $logger->setEventItem('post_vars',print_r($_POST,true)); 
    $logger->setEventItem('ip',$_SERVER['REMOTE_ADDR']); 
    $logger->setEventItem('id_user',$auth->getIdentity()->id); 



    $logger->addPriority('login', 10); 
    $logger->addPriority('logout', 11); 
    $logger->addPriority('trans', 12); 
    $logger->addPriority('transfailed', 13); 

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

我沒有錯誤,但用戶ID不存儲或檢索...

+2

當你做var_dump($ auth-> getIdentity()); – yokoloko

+0

有沒有... – cwhisperer

回答

1

在引導,權威性信息不可用。您需要添加行:

$logger = Zend_Registry::get('logger'); 

$logger->setEventItem('id_user',$auth->getIdentity()->id); 

您從用戶那裏得到的信息標識(在你的登錄控制器)。