BISLogger: mudanças entre as edições

De BIS Wiki
Ir para navegação Ir para pesquisar
Página substituída por 'O BISLogger é o serviço de persistência dos logs utilizado no BISERP para comsumir os Logs feitos através do serviço do FWLogger. Para entender melhor de como...'
Etiqueta: Substituído
Sem resumo de edição
Linha 1: Linha 1:
O BISLogger é o serviço de persistência dos logs utilizado no BISERP para comsumir os Logs feitos através do serviço do [[FWLogger]].
O BISLogger é a implementação do RFWLogger utilizada no BIS10.


Para entender melhor de como fazer os logs e seu funcionamento, leia a página do [[FWLogger]].
Para mais informações leia a documentação do RFWLogger.


O BISLogger é apenas uma Thread que se inicia junto com o deploy da aplicação (iniciado pelo Brainz), que de tempos em tempos procura por novos logs no [[FWLogger]] e os persiste no banco de dados. Removendo assim os recursos da memória.
Logo, todos os logs do sistema devem seguir a diretriz do RFWLogger e utilizar os métodos da própria classe do RFWLogger para registrar os eventos.


O BISLogger precisa ser forçado a desligar no fim do undeploy da aplicação, através do método de shutdown(). Depois da chamada desse método recomenda-se não realizar mais nenhum log pois eles podem ser perdidos.
 
= 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.

Edição das 16h13min de 26 de julho de 2023

O BISLogger é a implementação do RFWLogger utilizada no BIS10.

Para mais informações leia a documentação do RFWLogger.

Logo, todos os logs do sistema devem seguir a diretriz do RFWLogger e utilizar 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.