Frameworks php

Armazenando Log No Banco De Dados Com Zend Log

Olá pessoal! No último post vimos como implementar um sistema de log com ZendLog.

Agora vamos aprender como armazenar log no banco de dados. Como exemplo vou utilizar o Mysql, e vou supor que seu projeto já esteja devidamente configurado para acesso ao banco de dados, caso ainda não esteja, dê uma lida na documentação.

Para iniciar vamos criar nossa tabela no banco de dados:

CREATE TABLE `log` (
  	`id` int(11) NOT NULL AUTO_INCREMENT,
  	`date` datetime NOT NULL,
  	`type` int(11) NOT NULL,
  	`event` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  	PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Vamos para a ação!

Em nosso controlador ApplicationController, vamos implementar a seguinte estrutura.

Img01

Vamos analisar nossa implementação.

Linha 12 e 13

use ZendLogLogger;
use ZendLogWriterDb;

Incluímos nossas dependências, o que temos de novo é o ZendLogWriterDb, responsável por inserir as nossas informações no banco de dados.

Linha 21

$dbConfig = $this->getServiceLocator()->get('ZendDbAdapterAdapter');

Coletamos o DbAdapter por meio do Servide locator.

Linha 23

$mapping = array(
	'timestamp' => 'date',
	'priority'  => 'type',
	'message'   => 'event'
);

Temos um array onde contém nossa estrutura da tabela de log no banco de dados.

Linha 29

$writerDB = new Db($dbConfig, 'log', $mapping);

Definimos nosso novo Writer, onde o primeiro parâmetro é a configuração do banco de dados, seguido do nome da tabela onde serão armazenados os dados e por último a estrutura para que nosso log siga na inserção de dados.

Linha 30

$loggerDB = new Logger();

Instanciamos nosso logger.

Linha 31

$loggerDB->addWriter($writerDB);

Adicionamos nosso Writer.

Linha 33
$loggerDB->info(‘Nossa primeira mensagem de log no banco de dados.’);

Inserimos nossa primeira mensagem de log no banco de dados.

Em seguida podemos acessar nosso projeto.

Img02

Assim podemos notar que para o usuário nada mudou, porém ao olharmos nossa tabela no banco de dados vamos encontrar nosso primeiro registro de log.

Img03

E pronto, temos nosso primeiro registro de log no banco de dados!

Conforme definimos, estão armazenados em nossa tabela no banco de dados: data, hora, tipo de log e nossa mensagem.

Viram é muito simples a utilização de log com Zend Framework 2, um componente bem poderoso e que nos facilita muito.
A maneira que utilizamos o log é meramente didática. O Zend Framework 2 tem diversas maneiras de ser utilizado e a implementação de log vai de acordo com a necessidade do seu sistema.

Espero que tenham gostado e até a próxima.

Armazenando Log No Banco De Dados Com Zend Log was originally published by Diego Brocanelli at Frameworks PHP on February 07, 2015.

Powered by WPeMatico