Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 9 Próxima »


01. VISÃO GERAL


Visando padronizar o processo de obtenção de Logs para identificação de problemas e fluxo de operações do Meu RH, foi implementado o RM Tracklog. 
O RM TRACKLOG é o motor de logs do RM responsável por disponibilizar informações sobre o sistema através de arquivos de texto contendo data e hora do evento e mensagens criadas de forma automática.
Portanto, com o TRACKLOG, os logs são capazes de mostrar o que, quando e onde aconteceu um evento, além de indicar quem deu início a ele.


02. ARQUIVO DE CONFIGURAÇÃO

O TRACKLOG é configurado através do arquivo JSON appsettings.log.json, para a solução do Meu RH, este arquivo deve estar localizado no nível raiz da pasta Bin, dentro da pasta FrameHTML. Caso o arquivo não seja encontrado, o sistema assume as configurações padrões
O conteúdo do arquivo de configuração é divido em algumas sessões, conforme detalhado no item 2.3.

Atualmente, por questões técnicas da engenharia do RM, o RMSTracklog está disponível para utilização no Meu RH, somente para registros de log em servidor Seq *


*Seq é um servidor de pesquisa e análise em tempo real para dados de log de aplicativos estruturados.

2.1 NÍVEIS (LEVEL) DE LOG

6/6

Ordem

Nível (Level)

Identificado no arquivo

Uso

5Fatal[FTL]O nível mais crítico, os eventos fatais exigem atenção imediata.
4Error[ERR]Quando a funcionalidade não está disponível ou as expectativas são quebradas, um evento de Erro é usado.
3Warning[WRN]Quando o serviço está degradado, em perigo ou pode estar se comportando fora de seus parâmetros esperados,
os eventos de nível de aviso são usados.
2Information[INF]Os eventos de informação descrevem coisas que acontecem no sistema que correspondem às suas responsabilidades e funções. 
Geralmente estas são as ações observáveis ​​que o sistema pode realizar.
1Debug[DBG]Debug é usado para eventos internos do sistema que não são necessariamente observáveis ​​de fora, mas são úteis para determinar como algo aconteceu.
0Verbose[VRB]Verbose é o nível mais ruidoso, raramente (ou nunca) habilitado para um aplicativo de produção.


2.2 SESSÕES DO ARQUIVO DE CONFIGURAÇÃO


  • Sessão principal Serilog:
    A a sessão principal do arquivo de configuração é a "Serilog", onde é informado como o sistema deve escrever o arquivo de log e os recursos que serão utilizados: 


Sessão Principal

Subsesões 

Pode ser alterado?
Serilog


UsingNãoRecursos usados pelo Serilog 
EnrichNãoInformações usadas para enriquecer os dados do log.
MinimumLevelSimNível mínimo que deve ser registrado.
0-Verbose, 1-Debug, 2 - Information, 3-Warning, 4-Error, 5-Fatal
FilterSimUsa expressão para filtrar eventos que passam pelo pipeline Serilog - Opções de Name: ByExcluding ou ByIncludingOnly
WriteToSomente os argumentos na subseção Args da MapToFileDefine como e onde o log deve ser escrito e salvo.


  • Sessão que configura o envio do log para o sistema de monitoramento Seq

"WriteTo": [
      {
        "Name": "Seq",
        "Args": {

Propriedade

Descrição

serverUrlDefine a url do servidor Seq.

2.3 INFORMAÇÕES CONTIDAS NO ARQUIVO DE LOG

O arquivo de log é escrito conforme um template padrão (outputTemplate):


outputTemplate
{SourceContext}{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} {Legacy} [{Level:u3}] {Message:lj} ({EnvironmentName}|{EnvironmentUserName}) <{ThreadId}:{ThreadName}>[{ProcessId}:{ProcessName}] [{CallerFilePath} - ({CallerLineNumber}) - {CallerMemberName}] [{Module}, {Category}, {Funcionality}] {NewLine}{Exception}



Propriedades do templete

Exemplo de dados logado

Descrição

{SourceContext}RM.Lib.Monitoring.Tracklog.Test.LogUnitTest

Contexto onde o log se encontra. Geralmente o namespace da classe que está usando o TrackLog.

{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} 2022-08-30 17:44:44.870 -03:00Data e hora do evento.
{Legacy} [LGC]Registros do sistema antigo de log são identificado com a tag [LGC]
[{Level:u3}] [INF]Nível (level) do evento.
{Tenant}shared-environmentIdentifica o Tenant do evento. Esse item é acoplado à mensagem.
{Message:lj} Information log testMensagem do evento.
({EnvironmentName}|{EnvironmentUserName}) (Production|JV01\valdemar.junior)Nome do ambiente e do usuário.
<{ThreadId}:{ThreadName}><13:Host>ThreadId e ThreadName do evento.
[{ProcessId}:{ProcessName}] [36956:Host.exe]ProcessId e ProcessName do evento.
[{CallerFilePath} - ({CallerLineNumber}) - {CallerMemberName}] [Lib\RM.Lib.Monitoring.Tracklog.TesteUnitario\LogUnitTest.cs - (114) - Should_Write_Info_Log]Arquivo de onde foi registrado o evento de log com o número da linha e o método que o chamou.
[{Module}, {Category}, {Funcionality}] [RMLib, SmartClient, Configuracao]Módulo, categoria e funcionalidade do sistema onde o evento ocorreu.
{NewLine}{Exception}NullReferenceException: Write Error Log Exception ---> System.Exception: Should_Write_Error_LogWarning, Error e Fatal é registrado e uma nova linha com a exceção

03. INSTALAÇÃO DE SERVIDOR SEQ

As informações referente a instalação e configuração de servidor Seq estão disponíveis no site do fabricante, conforme link https://docs.datalust.co/docs/an-overview-of-seq;


03.1 EM SERVIDORES WINDOWS

Efetuar download do instalador (arquivo .msi) e executá-lo, conforme link: https://datalust.co/download;

Após a instalação, atentar-se para o endereço do servidor, informado na etapa de configuração: 



Além disso, armazenar as informações de usuário e senha administradores do servidor, inseridos na segunda etapa.

Para mais informações, consultar documentação do fabricante: https://docs.datalust.co/docs/getting-started.

03.2 EM SERVIDORES LINUX

Efetuar download do instalador (datalust/seq - Docker) e executá-lo, conforme link: https://datalust.co/download;

Para mais informações, consultar documentação do fabricante: https://docs.datalust.co/docs/getting-started-with-docker.



04. HABILITANDO TRACKLOG NO MEU RH

Executar os passos abaixo para que seja iniciada a gravação dos arquivos de log do Meu RH no servidor de Seq configurado.


04.1 INCLUIR ARQUIVO DE CONFIGURAÇÃO NA PASTA FRAMEHTML

Efetuar download do arquivo de configuração JSON padrão e colar dentro da pasta de instalação FrameHTML.



Após colar o arquivo de configuração será necessário alterar o endereço do servidor Seq, contido na propriedade "serverUrl" para registro dos logs. 



Poderá ser incluído também filtros e alterado o nível de log a ser registrado.


04.2 INCLUIR TAG NO ARQUIVO WEB.CONFIG DA FRAMEHTML

Localizar o arquivo web.config, contido dentro da pasta FrameHTML e incluir a tag abaixo: 


05. HABILITANDO TRACKLOG NO RM PARA LOG COMPLETO


05.1 INCLUIR TAG NO ARQUIVO DO HOST

Localizar o arquivo RM.Host.exe.config, RM.Host.Service.exe.config e RM.Host.JobRunner.exe.config.

Para cada arquivo será necessário incluir a tag abaixo: 


05.2 INCLUIR ARQUIVO DE CONFIGURAÇÃO NA PASTA RAIZ

Efetuar download do arquivo de configuração JSON padrão (appsettings.log.json) e colar dentro da pasta, no diretório raiz do sistema RM.



Para os logs do RM, além da gravação no servidor Seq, já está disponível a gravação em arquivo em diretório configurado, diferentemente do Meu RH.



Para armazenamento em arquivo no diretório, favor consultar documentação : .


06. UTILIZAÇÃO DO SERVIDOR SEQ


Realizada a instalação do Servidor Seq, incluídos os arquivos de configuração do log e alterados os arquivos para inclusão da tag de gravação de log e reinício dos serviços do Host e IIS, abrir no navegador com a URL configurada na instalação do servidor Seq.

Ao acessar o endereço, poderá ser solicitado o usuário e senha informados na instalação:


Ao pressionar o ícone de Play, serão listados os logs gravados no período informado. 


06.1 APLICAÇÃO DE FILTROS PARA ACOMPANHAMENTO

No servidor Seq é possível aplicar filtros para facilitar o acompanhamento dos logs que estão sendo gravados.

Além dos filtros por Nível (Level), como Warning e Errors, é possível filtrar por Logs de um Módulo, Categoria e Funcionalidade.

Para isto, no campo de busca, ao ládo do botão de Play, basta informar os campos que deseja filtrar:


  • Aplicando filtro pelo Módulo: No caso, se for necessário analisar somente os logs do Meu RH, o módulo a ser filtrado será MeuRH, conforme demonstrado abaixo: 



  • Aplicando filtro por Categoria: É possível filtrar por uma categoria que contenha mais de uma funcionalidade. Como exemplo no Meu RH temos a Categoria de Funcionário. Dentro dela existem várias funcionalidades como Perfil, Atualização de dados pessoais, Atualização de endereço, Atualização de contatos, Foto, Próximas férias.



  • É possível filtrar por logs de uma funcionalidade específica, seguindo o exemplo da categoria de Funcionário, pode ser aplicado um filtro para listar apenas pela funcionalidade de listagem de logs relacionado a busca de dados do perfil, por exemplo, conforme imagem abaixo:


  • Os filtros podem ser aplicados em forma conjuta, ou seja, mais de um filtro, seguindo a sequência proposta, podemos aplicar um filtro por módulo, categoria e funcionalidade, conforme abaixo: 



  • Além deste filtros é possível filtrar por um intervalo de datas e horários:



  • Outros possíveis campos a serem filtrados: CallerFilePath, CallerLineNumber, CallerMemberName, Category, EnvironmentName, EnvironmentUserName, Funcionality, GetTypeName, MachineName, Module, ProcessId, ProcessName, ServerName, Tenant, ThreadId.


06.2 CATEGORIAS E FUNCIONALIDADES DISPONÍVEIS PARA CONSULTA DE LOG NO MEU RH:

A gravação de logs utilizando RM Tracklog está sendo implementada de forma progressiva para as funcionalidades. Abaixo é possível identificar quais categorias e funcionalidades já podem ter seu log capturado e analisado:


06.2.1 CATEGORIAS:

  • Api:
    • Cookie;
    • Token;


  • Login:
    • Cookie;
    • Token;
    • OAuth;
    • SAML;
    • Fluig;
    • RefreshToken;
    • RecoveryPassword;
    • ChangePassword;


  • General: 
    • SystemVersion;
    • CompanySettings;
    • Permissions;
    • HealthCheck;


  • Context:
    • Contexts;
    • CurrentContext;
    • UpdateCurrentContext;


  • Employee:
    • Profile;
    • Photo;
    • IsCoordinator;
    • NextVacationDatePeriod;
    • UpdateAddress;
    • UpdateContacts;
    • UpdatePersonalData;
    • UpdateDocument;


  • Team:
    • NotificationTotalizer;
    • BalanceSummary;
    • Birthdates;


  • Payment:
    • Available;


  • PushNotification:
    • Settings;
    • AmountNotifications;


  • Tae:
    • GenerateToken;
    • Dashboard;


  • Timesheet:
    • BalanceSummary;






  • Sem rótulos