Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera tudo beleza?
Venho estudando Orientação a Objeto e vejo muito gente comentando sobre log. Sou apenas um iniciante em OO e quase tudo é relativamente novo para mim, queria saber mas sobre log, quem puder esclarecer essa minha dúvida ficarei muito grato:
Dúvidas:
1. O que é logger, para que serve um log, qual o seu objetivo principal?
2. Log é um arquivo e se for um arquivo como gerar um log?
3. O que xml tem haver com log?
Desde já obrigado
valeu ae bruno pela ajuda
Só mas umas dúvidas
1. Log só é criado quando um erro é encontrado no sistema, ou pode existir outra possibilidade de ter que criar um log?
2. Dentro desse registro de log, teria algo registrado como: assunto do erro, descrição do erro, data, ip, email e outros?
3. Como organizar cada tipo de registro de log? Quais seriam os tipo de erro no sistema, para depois ficar mais fácil procurar um log.
Obs.: se os log forem feito em arquivos txt, então cada pasta seria guardado um tipo de log txt?
Exemplo:
>
* erro de login errados
* erro com conexão com bd
* e entre outros tipos de erro
1. Um log é criado quando o evento que deseja ser registrado acontece. Se você quiser rastrear apenas erros de sistema, você cria logs para erros de sistema. Os servidores web (apache, nginx, lighttp) geram um log para cada requisição solicitada.
2. Quem monta o log é você. Normalmente os dados do log trazem informações relevantes ao assunto. Tomando novamente o exemplo dos servidores web, um log comum é a data/hora, o tipo de navegador, o arquivo solicitado, o resultado (se o arquivo foi encontrado, se foi redirecionado, se foi enviado um erro) e o IP remoto.
3. O mais usual é um arquivo de log por assunto: system_errors.log, acess.log, logins.log, file_deletions.log, etc.
Poderia mostrar todos os tipos de erro ou um artigo falando sobre isso Evandro?
O que seriam "todos os tipos de erro"?
Se você quiser gerar um log dos erros do PHP, utilize a diretiva error_log. Note que os erros registrados são os que forem definidos na diretiva error_reporting
O que seriam "todos os tipos de erro"?
Eu vi que a função error_reporting tem os seguintes level de erro:
>
E_ERROR
E_WARNING
E_PARSE
E_NOTICE
E_CORE_ERROR
E_CORE_WARNING
E_COMPILE_ERROR
E_COMPILE_WARNING
E_USER_ERROR
E_USER_WARNING
E_USER_NOTICE
E_ALL
E_STRICT
E_RECOVERABLE_ERROR
No caso de por exemplo no login eu quiser registrar um log quando "o nome de usuário ou a senha não conferir" , que tipo de erro se enquadraria nos tipo acima?
Ou eu mesmo terei que nomear os meus próprios tipo de log de erro? Exemplo: (erro login, erro acesso administrador, erro parâmetros url)
O primeiro passo é sempre e apenas os níveis *E_USER_**. Eles indicam erros do usuário do PHP no caso, o programador.
Notices significam notas e lembretes. Não interferem no ciclo do programa em si. O Notice mais comum em PHP é o uso de variáveis não declaradas:
echo $variavel_nao_declarada;
O PHP assume o valor como [inline]null[/inline] e "toca o barco".
Warnings são avisos e alertas. Significam que algo fora do comum/esperado ocorreu, mas é possível dar continuidade ao programa mesmo assim. Ainda, você poderá ter erros mais severos futuramente devido a este aviso. Warnings são comumente exibidos pelo PHP quando - por exemplo - a conexão com o banco falha. Não é um erro que impeça o prosseguimento do programa mas vai gerar um resultado diferente do esperado.
mysql_connect('localhost', 'usuario', 'senha incorreta');
O PHP emite um aviso e tenta prosseguir. Mais pra frente você terá erros como "expects parameter 1 to be resource, boolean given" e a coisa vai só piorando...
Errors são erros fatais. Não é possível prosseguir com o programa devido a uma falha que impede a sequência. Programando para PHP uma forma de ver este erro é omitindo a chave de fechamento ([inline]}[/inline]) de um bloco.
if (false) {
echo 'este trecho de código gera um erro fatal.';O RFC 5424 define padrões para logs.
Se você estiver com preguiça de ler a RFC (sempre dá preguiça) pode se basear pela função syslog() do PHP.
Ela trabalha com 8 tipos de proiridade de log, que já dá pra você organizar de um jeito bem suficiente pra muitos casos.
1. Registrar informações sobre sua aplicação. Podem ser apenas informativos (usuário X fez Y coisa), mas na maioria das vezes apenas o críticos são gravados (envio de e-mail.falhou por isso, isso e aquilo).
2. Log não é um arquivo, é aquilo que você vai registrar. Pode ser dsde uma simples mensagem até um stack trace completo.
3. Os mais básicos dos sistemas de logs trabalham ou com arquivos de texto ou enviando a mensagem por e-mail ao Administrador. XML nada mais é do que um arquivo de texto estruturado de uma forma específica. Se você tiver uma aplicação que tire proveito da hierarquia de nós de um XML, pode gravar um documento inteiro como sendo um log, mas isso é impraticável.