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 02.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

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.


"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):


{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 :  Framework - Linha RM- Frame - Habilitar o RM Tracklog.




Esta funcionalidade está liberada somente a partir da versão 12.1.2402.160.