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.
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 *
*O Seq é um servidor de pesquisa e análise em tempo real para dados de log de aplicativos estruturados.
6/6
Ordem | Nível (Level) | Identificado no arquivo | Uso |
---|---|---|---|
5 | Fatal | [FTL] | O nível mais crítico, os eventos fatais exigem atenção imediata. |
4 | Error | [ERR] | Quando a funcionalidade não está disponível ou as expectativas são quebradas, um evento de Erro é usado. |
3 | Warning | [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. |
2 | Information | [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. |
1 | Debug | [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. |
0 | Verbose | [VRB] | Verbose é o nível mais ruidoso, raramente (ou nunca) habilitado para um aplicativo de produção. |
Sessão Principal | Subsesões | Pode ser alterado? | |
---|---|---|---|
Serilog | |||
Using | Não | Recursos usados pelo Serilog | |
Enrich | Não | Informações usadas para enriquecer os dados do log. | |
MinimumLevel | Sim | Nível mínimo que deve ser registrado. 0-Verbose, 1-Debug, 2 - Information, 3-Warning, 4-Error, 5-Fatal | |
Filter | Sim | Usa expressão para filtrar eventos que passam pelo pipeline Serilog - Opções de Name: ByExcluding ou ByIncludingOnly | |
WriteTo | Somente os argumentos na subseção Args da MapToFile | Define como e onde o log deve ser escrito e salvo. |
"WriteTo": [
{
"Name": "Seq",
"Args": {
Propriedade | Descrição |
---|---|
serverUrl | Define a url do servidor Seq. |
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:00 | Data 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-environment | Identifica o Tenant do evento. Esse item é acoplado à mensagem. |
{Message:lj} | Information log test | Mensagem 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_Log | Warning, Error e Fatal é registrado e uma nova linha com a exceção |
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;
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.
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.
Executar os passos abaixo para que seja iniciada a gravação dos arquivos de log do Meu RH no servidor de Seq configurado.
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.
Localizar o arquivo web.config, contido dentro da pasta FrameHTML e incluir a tag abaixo:
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:
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.