CONTEÚDO

  1. Visão Geral
  2. Configuração
    1. Tomcat
    2. AppServer
  3. Exemplo de utilização
  4. Anexos

01. VISÃO GERAL

Devido as diversas arquiteturas (Java, Client Progress, AppServer) utilizadas no produto TOTVS - Linha Datasul, a análise de uma inconsistência na execução de rotinas é difícil e improdutiva, ocasionando um atendimento ao cliente moroso e manutenções complicadas em analisar sua causa raiz.

Com o objetivo de sanar estas dificuldades, a partir da release 12.1.34 foi implementada a Rastreabilidade de Logs para facilitar a identificação de fluxos de execução entre as camadas (com a leitura dos arquivos de log) e permitir a centralização de análises dos mesmos, cujo o intuito é aumentar produtividade das análises para todas as equipes. 

02. CONFIGURAÇÃO

Para utilizar esta funcionalidade, é necessário efetuar algumas configurações no ambiente.

TOMCAT

Com o intuito de centralizar a origem da geração do log, foi evoluída a funcionalidade do TOTVS Valve para considerar a Rastreabilidade de Logs, sendo necessário efetuar parametrizações no Tomcat. A seguir será descrito um passo a passo para a configuração:

<Host ...>
	...
	<Valve className="com.totvs.valve.TotvsLogValve" />
</Host>
...
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/lib/totvs-lib/*.jar"
...

commons-logging-1.2.jar
log4j-1.2.12.jar
totvs-fwk-log-<VERSAO>-NFRW-SNAPSHOT.jar
totvs-valve-2.0.jar

APPSERVER

..... Descrever configuracao no administrador do AppServer vinculo (connection.p) .... 

03. EXEMPLO DE UTILIZAÇÃO

Para a apresentação das informações nos arquivos de log, foram disponibilizados duas classes utilitárias que devem ser inseridas no código fonte de acordo com cada linguagem de programação.

JAVA

Foi implementada a classe TOTVSLog, no qual foi realizada uma especialização da classe java.util.logging.Logger (https://docs.oracle.com/javase/8/docs/api/java/util/logging/Logger.html), já existentes no produto TOTVS - Linha Datasul.

Este classe está disponível no artefato totvs-fwk-log, sendo necessário a inclusão da dependência no arquivo pom.xml do projeto que será inserido o TOTVSLog.

<dependency>
	<groupId>com.totvs.framework</groupId>
	<artifactId>totvs-fwk-log</artifactId>
	<version>${project.version}</version>
	<scope>provided</scope>
</dependency>

Principais métodos

MétodoDescrição
public void warning(String cMsg)

Exibe no arquivo de log o valor de cMsg na estrutura para o rastreamento

Correspondente ao método warning do Logger. 

public void info(String cMsg)

Exibe no arquivo de log o valor de cMsg na estrutura para o rastreamento

Correspondente ao método info do Logger.

public void error(String cMsg)

Exibe no arquivo de log o valor de cMsg na estrutura para o rastreamento

Correspondente ao método severe do Logger.

public void debug(String cMsg)

Exibe no arquivo de log o valor de cMsg na estrutura para o rastreamento

Correspondente ao método finest do Logger.

Trecho de código - Exemplo Java

O exemplo a seguir utiliza o método debug para a exibição da mensagem de log, onde os valores complementares (UID, SEQUENCIA e ORIGEM) são preenchidos automaticamente de acordo com a requisição.

Para evitar problemas de concorrência das Threads e perda da rastreabilidade por UID O acesso a classe TOTVSLog deve ser realizado com a utilização de ThreadLocal. Resgate o objeto com o comando TOTVSLog.threadLocalTotvsLog.get() e utilize seus respectivos métodos.

TOTVSLog.threadLocalTotvsLog.get().debug("RASTREABILIDADE LOGS - TESTE!");


Caso o arquivo logging.properties esteja corretamente parametrizado para a exibição do nível FINEST, é apresentada a informação abaixo no arquivo catalina.*.log:

FINEST [http-nio-8080-exec-4] com.totvs.framework.log.TOTVSLog.debug a491862e-c754-427e-a276-32a7ad155a0e|0|WEBSERVER|RASTREABILIDADE LOGS - TESTE!

É possível informar manualmente os valores UID, SEQUENCIA e ORIGEM de acordo com a sua necessidade.

Consultar o anexo javadoc-totvs-log.zip para mais informações dos métodos e atributos existentes na classe TOTVSLog. Após descompactar, abrir o arquivo index.html em um navegador de sua preferencia. 

PROGRESS

asdasdsdasdsa


Trecho de código - Exemplo Progress - Client


Trecho de código - Exemplo Progress - AppServer


asdasdasd

TELA - PROPRIEDADES GERAIS

Para habilitar / desabilitar a exibição das mensagens de log (que utilizam a Rastreabilidade de Logs) em todas as camadas do produto, foi disponibilizada um chaveamento em Propriedades Gerais. Não é necessário reiniciar o navegador e / ou Tomcat para a efetivação das alterações.

Consultar o link https://tdn.totvs.com/pages/viewpage.action?pageId=592745663 caso necessite de mais informações.


Com a utilização da funcionalidade de Rastreabilidade de Logs. todas as mensagens que utilizarem o conceito descrito anteriormente serão apresentadas com a estrutura:

<UID>|<SEQUENCIA|<ORIGEM>|<MENSAGEM>

  • Como o UID é único, mesmo que a execução seja trafegada entre as camadas Java → AppServer, facilitará o rastreamento e a análise da execução de uma funcionalidade;
  • A sequencia é incrementada automaticamente a cada exibição da mensagem de log, com isso facilitará a análise da hierarquia de execução.

04. ANEXOS