domingo, 25 de janeiro de 2009

Zend Log

Estava precisando criar um log de acessos e etc.

O sistema que estou trabalhando é com Zend Framework, havia pensado em acessar o banco de dados diretamente pelo php para fazer, mas depois vi que existe o Zend_Log.

O problema é que eu não achava uma opção de colocar mais campos para alimentar o banco de dados. Depois de muitas procuras e testes, eis o código.


class logEvents{
private $_db;

public function __construct($db){
$this->_db = $db;
$colunas = array('logevents_type_idlogevents_type' => 'tipo',
'logevents_date' => 'timestamp',
'logevents_text' => 'message',
'idpartner' => 'parceiro',
'logevents_ip' => 'address'
);

$writer = new Zend_Log_Writer_Db($this->_db, 'logevents', $colunas);
$this->logger = new Zend_Log($writer);

}
public function set_acesso($tipo,$descricao = "",$parceiro = 0){
$this->logger->setEventItem('tipo',$tipo);
$this->logger->setEventItem('parceiro', $parceiro);
$this->logger->setEventItem('address',$_SERVER['REMOTE_ADDR']);
$this->logger->log($descricao);
}
}



Acho que dá pra entender bem o código né?

o segredo é usar o setEventItem!

Se você ficou com alguma dúvida, comente o post.