Professional Documents
Culture Documents
?>
Salve o arquivo acima como teste.php na mesma pgina onde se encontra o logger.php
.
Pronto. O Script acima gera 3 sadas consecutivas no seu arquivo de log.
Conferindo o resultado:
Nome do arquivo gerado:
Logger_19-06-09.txt
Contedo:
[21:57:36][201.7.xxx.xxx]> Testando a funo logger !
[21:57:36][201.7.xxx.xxx]> Como voc pode ver, estou logando uma informao !
[21:57:36][201.7.xxx.xxx]> Teste 1, Teste 2, Teste 3!
Bom, espero que o script sirva para mais algum. :)
===========================================
Atualizao em 13/abril/2011
A leitora Renata nos comentrios de hoje (13/04/11) deixou uma dvida muito boa Vale
a pena editar a matria e acrescentar a soluo dela aqui
Ela estava encontrando problemas para centralizar os arquivos de log em um s luga
r. Ela trabalhava com pastas para organizar seus arquivos, e ao incluir a funo log
ger nos arquivos, fazia com que os logs fossem gravados separadamente em cada pa
sta.
Por que isso ocorreu ?
Ela estava incluindo a funo da maneira correta: include ../logger.php ; mas o problem
a estava mesmo dentro da funo Logger.
Na varivel $arquivo, onde definimos o nome do arquivo de log, a funo parte do princp
io que o arquivo .txt est do lado do arquivo .php que contm a funo
Consideremos o seguinte path de diretrios:
/
/logs/Logger.txt
/logger.php
/folder1/pagina1.php
Ao incluir a funo logger de dentro da pagina1?, chamando a funo como a Renata fez ( ../
logger.php ), faz com que ao definir a variavel $arquivo = teste.txt o PHP vai salva
r o arquivo dentro da pasta folder1? pois ele interpreta o codigo a partir daquel
e contexto.
Para resolver isso, ao entrar na funo Logger, voce precisa mudar o contexto da exe
cuo para ele salvar o log corretamente na pasta log (independente de onde ela esti
ver), e no final da funo, voc precisa voltar o contexto para onde ele estava, para
evitar possiveis problemas.
Segue ento o novo cdigo que resolve o problema:
<?php
date_default_timezone_set('America/Sao_Paulo');
function Logger($msg){
//pega o path completo de onde esta executanto
$caminho_atual = getcwd();
//muda o contexto de execuo para a pasta logs
chdir("/home/rafaelbiriba/public_html/logs");
$data = date("d-m-y");
$hora = date("H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
//Nome do arquivo:
$arquivo = "Logger_$data.txt";