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.
Para utilizar esta funcionalidade, é necessário efetuar algumas configurações no ambiente.
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 |
..... Descrever configuracao no administrador do AppServer vinculo (connection.p) ....
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.
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> |
| Método | Descriçã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. |
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. |
asdasdsdasdsa
Trecho de código - Exemplo Progress - Client
Trecho de código - Exemplo Progress - AppServer
asdasdasd
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>
|