Gravando log de erros gerados em consultas SQL
Publicado por Andre Cardoso (última atualização em 01/10/2012)
[ Hits: 7.094 ]
Homepage: http://www.andrebian.com
Download logger-pt.tar.gz (versão 2)
Este script tem por finalidade auxiliar a gravação de log de erros em background, impossibilitando que mensagens de erro apareçam no site, expondo a estrutura ou parte dela para pessoas mal intencionadas.
Versão 2 - Enviado por Andre Cardoso em 29/09/2012
Changelog: Refeito o log, só não criei um novo script porque trata-se da mesma coisa, porem melhorada
Para pegar a versão sempre atualizada realize o clone no github
https://github.com/andrebian/logger.git
Está em ingles pra aceitar contribuições de qualquer parte do mundo
Recomendo a deixar o parametro display_errors desabilitado no site, pois esta é uma funcionalidade interessante somente em modo de produção para depuração. No site o ideal é que se trabalhe com gravação de log como esse que eu posto aqui. ##### Arquivo de funções do site ou mesmo arquivo onde deseja que seja utilizado (recomendo um arquivo de funções para que possa ser utilizado por qualquer arquivo necessário) function grava_log_erros_banco($arquivo,$linha,$argumentos,$erro){ /** * @desc Grava log de erros ocorridos em consultas SQL * @return Void * @param String $arquivo, $linha, $argumentos, $erro */ // abrindo o arquivo para gravar colocando o ponteiro de escrita na ultima linha $abre_log = fopen('./util/erros_log', 'a'); // setando a data atual $data = date('d/m/y H:i:s'); // definindo a mensagem a ser gravada $mensagem = htmlspecialchars("$data - $arquivo - Linha: $linha - Argumentos: $argumentos - Erro: $erro \n"); // escrevendo no arquivo de log @fwrite($abre_log,$mensagem); // fechando o arquivo de log @fclose($abre_log); } #### Arquivo ou parte que chama a função // pegando email da sessão $email = $_SESSION['usuario_logado']; $arquivo = __FILE__; // verificando se o usuario está logado $select = "select * from tb_clientes where email='$email'"; $linha = __LINE__; // logo após montar a query atribui o numero da linha em uma variável $select = mysql_query($select); if(mysql_error()){ $arquivo = __FILE__; // pegando o caminho completo e nome do arquivo $argumentos = "Coletando dados do usuário."; // descrição do que estava sendo executado no momento do erro $erro = mysql_error(); // chamando a função grava_log_erros_banco($arquivo, $linha, $argumentos, $erro); } ############################# Arquivo de log 27/05/12 13:16:24 - /var/www/desenvolvimento/lista-de-compras/site/layout/header.php - Linha: 19 - Argumentos: Coletando dados do usuário. - Erro: Table 'lista_de_compras.tb_clientes' doesn't exist ############################## ESPERO TER AJUDADO, pra mim esta função é essencial em qualquer projeto, não deixo uma consulta sem possibilidade de gravação de log.
Sistema de área restrista PHP/MYSQL
LOGIN em php utilisando session e mysql!
Geração de chaves Diffie-Hellman
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Linux Mint limitando rede a 20Mbps (6)
Jogando com Proton no LInux (0)
Ingress NGINX Controller CVSS base score of 9.8 (4)
Impossível corrigir problemas, você manteve (hold) pacotes quebrados. (2)