Mudanças entre as edições de "RFWLogger"
(Criou página com 'O '''RFWLogger''' é um serviço de "log" do framework com o objetivo de realizar o registro de informações do sistema para os desenvolvedores. O desenvolvedor deve chamar o '''RFWLogger''' sempre que alguma informação quiser registrar alguma informação similar a qualquer outro framework de Log. Além da possibilidade de imprimir no console, este serviço permite que o log seja organizado em banco de dados para uma melhor filtragem e análise do fluxo por sessão d...') |
(→Tags) |
||
Linha 26: | Linha 26: | ||
= Tags = | = Tags = | ||
O FWLogEntry tem ainda um conjunto de Tags. Essas tags podem ser passadas pelo desenvolvedor durante a chamada do método .log*() para identificar os registros (permitindo filtros posteriores). Algumas tags são definidas automaticamente pelo próprio '''RFWLogger'''. | O FWLogEntry tem ainda um conjunto de Tags. Essas tags podem ser passadas pelo desenvolvedor durante a chamada do método .log*() para identificar os registros (permitindo filtros posteriores). Algumas tags são definidas automaticamente pelo próprio '''RFWLogger'''. As tags automáticas são: | ||
* Caso estejamos utilizando o [[RFWSessions]] para controlar a sessão de autenticação, o label do usuário é colocado como tag; | * Caso estejamos utilizando o [[RFWSessions]] para controlar a sessão de autenticação, o label do usuário é colocado como tag; | ||
* Caso tenha sido inicializado no [[RFW]], o nome da aplicação também é colocado como uma tag; | * Caso tenha sido inicializado no [[RFW]], o nome da aplicação também é colocado como uma tag; | ||
Edição das 13h14min de 17 de novembro de 2022
O RFWLogger é um serviço de "log" do framework com o objetivo de realizar o registro de informações do sistema para os desenvolvedores. O desenvolvedor deve chamar o RFWLogger sempre que alguma informação quiser registrar alguma informação similar a qualquer outro framework de Log. Além da possibilidade de imprimir no console, este serviço permite que o log seja organizado em banco de dados para uma melhor filtragem e análise do fluxo por sessão do usuário.
![]() |
|
O RFWLogger se integra com a aplicação permitindo que tudo seja registrado de forma a facilitar o debug e relatórios para o desenvolvedor. Como por exemplo, podem ser inclusos no log informações de sessão - quando essas informações ocorrem dentro de uma sessão de usuário - permitindo um filtro dos logs da sessão e obtendo o passo a passo somente daquele usuário.
Funcionamento
O RFWLogger é uma classe estática e pode ser usada a qualquer momento. Todas as chamadas aos métodos .log*() criam entradas de log automaticamente que ficam armazenadas em uma lista dentro do próprio RFWLogger.
O módulo não persiste nem salva seus logs em nenhum lugar além da memória. O sistema deve implementar e inicializar uma Thread que consume os logs, persistindo-os onde achar melhor (banco de dados, arquivos, etc.) o mais rápido possível para evitar o consumo da memória, e ao mesmo tempo cuidando para que esse evento não gere problemas de performance.
Em resumo o RFWLogger oferece uma simples ferramenta para abstrair a maneira de realizar logs em todo o sistema e deixar que o sistema implemente como fará a persistência e análise dessas informações.
Estrutura do Objeto de Log
Cada evento de Log é um objeto diferente, um RFWLogEntry. Esse objeto tem dois campos diferentes para salvar mensagens: message e content. A diferença entre eles é que message sempre carrega a informação que o usuário passou no método de .log*(), enquanto que content são informações maiores, como o print de um objeto, um XML, o Stack do método que chamou o log (dependendo da Severidade não é colocado).
Tags
O FWLogEntry tem ainda um conjunto de Tags. Essas tags podem ser passadas pelo desenvolvedor durante a chamada do método .log*() para identificar os registros (permitindo filtros posteriores). Algumas tags são definidas automaticamente pelo próprio RFWLogger. As tags automáticas são:
- Caso estejamos utilizando o RFWSessions para controlar a sessão de autenticação, o label do usuário é colocado como tag;
- Caso tenha sido inicializado no RFW, o nome da aplicação também é colocado como uma tag;