BISLogger

De BIS Wiki
Revisão de 21h04min de 20 de março de 2015 por Rodrigogml (discussão | contribs) (Criou página com 'O BISLogger é um serviço de "log" do sistema com a função de realizar o registro de informações do sistema para os desenvolvedores. O desenvolvedor deve chamar o BISLogg...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

O BISLogger é um serviço de "log" do sistema com a função de realizar o registro de informações do sistema para os desenvolvedores. O desenvolvedor deve chamar o BISLogger sempre que alguma informação deva ser registrada ou informada para ajudar a encontrar problemas no sistema ou mesmo auxilia-lo durante a fase de desenvolvimento para visualizar o fluxo que o sistema tomou sem ter que debugar de linha em linha. Além da possibilidade de imprimir no console, este serviço é responsável por salvar em banco todas as informações necessárias em caso de erros e/ou outros acontecimentos do sistema. Distinguindo as informações importantes das desnecessárias para evitar um "flood" no banco de logs e transformando o BISLogger em um registro de uso do sistema.

Com base nessas informações e em seu filtro de importância dos registros, o BISLogger é responsável também por filtrar e informar automaticamente a equipe de desenvolvimento sobre erros que acontecem no sistema sem que o usuário tenha que se incomodar com isso.

Os benefícios deste serviço é proporcionar a equipe de desenvolvimento informações mais precisas sobre os erros do que as informações desconexas normalmente provenientes dos usuários, além de ter certeza de ser notificado de toda falha do sistema. Evitando que usuários deixem de informar sobre os erros e acabem descontentes com o sistema.

Registro

Registro de Mensagens de Texto

Na classe principal do BISLogger existem 4 métodos principais, estes registram mensagens em 4 categorias diferentes. São elas:

  • error - É uma mensagem de problemas encontrados no sistema, algo anormal que deve ser levado em consideração.
  • warn - Warning é uma mensagem de aviso, quando algo não está como esperado mas não deverá causar nenhum erro nos sistema. Já tem uma relevância maior que a info.
  • info - Informações simples a serem exibidas no console para mostrar ao desenvolvedor sobre o que o sistema está fazendo, de forma genérica e mesmo sem muitos detalhes. Exatamente um "System Out".
  • debug - Este tipo de mensagem é uma mensagem detalhada, com anotações dos objetos e detalhes da execução de um método. Geralmente usada para rastreamento preciso de algum erro que esteja acontecendo no sistema e não esteja simples de se detectar.

Registro de Mensagens Especiais

  • report - O tipo de registro Report é registrado separado do relatório da Thread padrão do BISLogger. Ele é identificado por um ID passado no primeiro parâmetro do método. Os registros sucessivos utilizando o mesmo ID de relatório serão somados em um único Log até que este seja finalizado por inatividade, ou forçado no shutdown/undeploy do sistema. Independente da Thread que o faça o log, todos os farão parte do mesmo relatório. A ideia é possibilitar o registro em um mesmo relatório quando o sistema está distribuído em Threads.

Registro de Exceptions

Além do registro de mensagens simples descritos anteriormente, o BISLogger apresenta métodos para registrar Exceções de forma simples! Basta chamar seu método e passar a exceção ocorrida, seu stack trace será recuperado e registrado junto com a mensagem.

Registro de VOs

Em alguns casos pode haver a necessidade de se registrar os VOs completo do sistema para saber o que está causando o erro. Para tal o BISLogger dispõe de um método que lê e imprime qualquer VO do sistema. Neste caso deve ser descendente de BISDefaultVO.

Auto-Debugger

Com a finalidade de registrar em detalhes todas as informações importantes que acontecerem no sistema o BISLogger registrar todos os eventos relacionados a uma Thread em memória, e se antes do fim da Thread ocorrer o registro de alguma informação desejada (definida em configuração), como por exemplo uma exception, todo o LOG (incluindo msgs do tipo Debug, Info, etc.) será salvo em banco de dados e posteriormente enviado aos servidores do BISServer. Caso nada ocorra as informações serão descartadas sem que se ocupe espaço registrando informações desnecessárias. É possível configurar o Auto-Debugger para saber quais dados são importantes para registro, verifique a sessão de Configuração para saber como.

Relatórios
O Auto-Debugger funciona independente das configurações de impressão das mensagens. Isto é, mesmo que as configurações não permitam que o BIS escreva no console o registro dos erros, o Auto-Debugger continuará registrando estas mensagens para reportar aos servidores.


BISValidationException
Quando as exceptions são da classe BISValidationException o BISLogger não faz registro automático (exceto se configurado para isso) e ignora como se não tivessem ocorrido exceptions. Isso porque não trata-se de um erro, mas sim de alguma falha de validação nos dados recebidos para processamento. Em outras palavras, as exceptions de validação não são tratadas junto com as demais exceptions do sistema. Para registrar toda e qualquer exception de Validation, o BISLogger deve ser explicitamente configurado.


Nível de Registro das Mensagens
O Auto-Debugger funciona independente das configurações de impressão das mensagens. Isto é, mesmo que as configurações não permitam que o BIS escreva no console o registro dos erros, o Auto-Debugger continuará registrando estas mensagens para reportar aos servidores.


Configuração BISLogger

O BISLogger deve ser configurado no servidor, através das propriedades de sistema abaixo:

Propriedades de Configurações BISLogger
Propriedade Efeito
br.com.biserp.biscore.bislogger.systemout.info True para jogar no System.out todas as informações que forem logadas. False ignora.
br.com.biserp.biscore.bislogger.systemout.warn True para jogar no System.out todos os alertas que forem logados. False ignora.
br.com.biserp.biscore.bislogger.systemout.error True para jogar no System.out todos os erros que forem logados. False ignora.
br.com.biserp.biscore.bislogger.systemout.debug True para jogar no System.out todos os debugs que forem logados. False ignora.
br.com.biserp.biscore.bislogger.systemout.report True para jogar no System.out todos os reports que forem logados. False ignora.
br.com.biserp.biscore.bislogger.systemout.validations True para jogar no System.out todas as exceções de validação que forem logados. False ignora.
br.com.biserp.biscore.bislogger.systemout.exceptions True para jogar no System.out todas as exceções (exceto de validações) que forem logados. False ignora.
br.com.biserp.biscore.bislogger.systemout.vos True para jogar no System.out todos os VOs que forem logados. False ignora.
br.com.biserp.biscore.bislogger.autodebugger.info True para enviar para o BISServer todas as informações que forem logadas. False ignora.
br.com.biserp.biscore.bislogger.autodebugger.warn True para enviar para o BISServer todos os alertas que forem logados. False ignora.
br.com.biserp.biscore.bislogger.autodebugger.error True para enviar para o BISServer todos os erros que forem logados. False ignora.
br.com.biserp.biscore.bislogger.autodebugger.debug True para enviar para o BISServer todos os debugs que forem logados. False ignora.
br.com.biserp.biscore.bislogger.autodebugger.report True para enviar para o BISServer todos os reports que forem logados. False ignora.
br.com.biserp.biscore.bislogger.autodebugger.validations True para enviar para o BISServer todas as exceções de validação que forem logados. False ignora.
br.com.biserp.biscore.bislogger.autodebugger.exceptions True para enviar para o BISServer todas as exceções (exceto de validações) que forem logados. False ignora.
br.com.biserp.biscore.bislogger.autodebugger.vos True para enviar para o BISServer todos os VOs que forem logados. False ignora.
Configurações Auto-Debugger
Se o Auto-Debugger estiver configurado para enviar apenas mensagens do tipo exception, significa que ele enviará apenas Logs em que tenham ocorrido registro de exceptions, porém o Log completo será enviado, com o registro dos debugs, infos, warns, e tudo mais. Não apenas a informação definida para enviar.

Em outras palavras, as configurações do auto-debugger indicam quais mensagens devem aparecer no log para que ele seja importante o suficiente a ponto de ser enviado para o BISServer.