BISLogger
O BISLogger é a implementação do RFWLogger utilizada no BIS10.
Para mais informações leia a documentação do RFWLogger.
Utilização para Log
Por ser uma implementação baseada no RFWLogger, a utilização segue as as diretriz do RFWLogger e utiliza os métodos da própria classe do RFWLogger para registrar os eventos.
Funcionamento
No BIS10, o RFWLogger, implementado através do BISLogger, tem o objetivo de transformar todos os registros de log em entradas no banco de dados. Com isso esperamos ganhar na agilidade de filtrar e criar relatórios específicos sobre os acontecimentos do sistema.
Todos os logs realizados pelo RFWLogger são redirecionados através da implementação BISRFWLoggerImplementation para dentro do BISLogger. Já convertendo as entradas de log no objeto BISLoggerVO que é persistido no banco de dados.
O BISLogger armazena essas entradas temporariamente em memória, e a cada X tempo envia todos os objetos para serem persistidos no banco, livrando a memória. Essa operação é realizada por uma Thread que fica dentro do próprio BISLogger, e pode ser inicializada de duas maneiras:
- Ao registrar o primeiro objeto de log dentro da classe; ou,
- Diretamente pelo método startPersistThread().
A thread não é do tipo Daemond, ou seja, não permitirá que o sistema se desligue enquanto ela estiver rodando. Este efeito é intencional, para obrigar o desenvolvedor a tratar o encerramento do registro de Logs sem que sejam interrompidos no meio.
A thread termina utilizando o sistema de shutdown do RFW, ou seja, quando o método RFW.shutdownFW() for chamado. Ainda assim, após o encerramento de todo o sistema, alguns que também possam depender da mesma flag para se desligarem, é recomendado a chamada do método BISLogger.persistEntries() para garantir que não sobraram entradas pendentes.
Manutenção
Para que os registros não fiquem esquecidos "para sempre" na base de dados só acumulando dados, o BIS tem implementada a tarefa BISLoggerMaintenanceTask, que é executada periodicamente e limpa os registros mais antigos que uma determinada data.
As datas de validade de cada tipo de registro de log podem ser definidos nas configurações (propriedades) do sistema.