Histórico da Página
Informações | ||
---|---|---|
| ||
A partir da release 12.1.2311, a biblioteca totvs-valve-<VERSAO>.jar é expedida com o produto, portanto basta configurar sua utilização conforme recomendações a seguir. |
CONTEÚDO
- Visão Geral
- Configuração
- Tomcat
- AppServer
- Exemplo de utilização
- JAVA
- Progress
- 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 2209 implementamos 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 as seguintes 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:
...
- Inserir os arquivos .jar abaixo no diretório recém criado (anexo totvs-lib.zip com os arquivos necessários).
Bloco de código | ||
---|---|---|
| ||
commons-logging-1.2.jar log4j-1.2.12.jar totvs-fwk-log-<VERSAO>-NFRW-SNAPSHOT.jar totvs-valve-2.0.jar |
...
Para garantir a unicidade do UID entre as camadas Java e Progress, é necessário parametrizar as configurações do broker que será utilizado nas conexões. A seguir será descrito um passo a passo.:
- Localizar o broker que será utilizado no Progress OpenEdge Explorer
- Entrar em Configurações, aba Agent e editar (ou criar) o arquivo .p indicado em "Connect procedure"
- Inserir no arquivo
*.p
do Connect procedure (que no exemplo acima é o connect.p), como terceiro parâmetro de entrada o valor cAppServerInfo, para posteriormente setar o mesmo na variável global gAppServerInfo.
Bloco de código | ||
---|---|---|
| ||
DEFINE INPUT PARAMETER cParam1 cuserid AS CHARACTER NO-UNDO. DEFINE INPUT PARAMETER cParam2 cpasswd AS CHARACTER NO-UNDO. DEFINE INPUT PARAMETER cAppServerInfo AS CHARACTER NO-UNDO. DEFINE NEW GLOBAL SHARED VARIABLE gAppServerInfo AS CHARACTER NO-UNDO. IF cAppServerInfo <> "" OR cAppServerInfo <> ? THEN ASSIGN gAppServerInfo = cAppServerInfo. |
...
Para a apresentação das informações nos arquivos de log, foram disponibilizados duas classes utilitárias (TOTVSLog e dtsLog) que devem ser inseridas a classe utilitária TOTVSLogUtil que deve ser inserida no código fonte de acordo com cada linguagem de programação.
...
Foi implementada a classe TOTVSLog TOTVSLogUtil, no qual foi realizada utiliza 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 Esta classe está disponível no artefato totvs-fwk-logutil, sendo necessário a inclusão da dependência no arquivo pom.xml do projeto que será inserido o TOTVSLogTOTVSLogUtil.
Bloco de código | ||||
---|---|---|---|---|
| ||||
<dependency> <groupId>com.totvs.framework</groupId> <artifactId>totvs-fwk-log<util</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> |
Principais métodos
Método | Descrição |
---|---|
public void warningerror(String cMsg) | Exibe no arquivo de log o valor de cMsg na estrutura para o rastreamento Correspondente ao método warning severe do Logger. |
public void infowarning(String cMsg) | Exibe no arquivo de log o valor de cMsg na estrutura para o rastreamento Correspondente ao método info warning do Logger. |
public void errorinfo(String cMsg) | Exibe no arquivo de log o valor de cMsg na estrutura para o rastreamento Correspondente ao método severe info 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.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
TOTVSLog..threadLocalTotvsLog.get() TOTVSLogUtil.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:
...
Dica | ||
---|---|---|
| ||
É 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 que se trata da implementação dos logs utilizados em TOTVSLogUtil. Após descompactar, abrir o arquivo arquivo index.html em um navegador de sua preferenciapreferência. |
PROGRESS
dtsLog
...
Para a exibição da funcionalidade de Rastreabilidade de Logs para fontes Progress, foi implementada a classe TOTVSLogUtil, no qual utiliza recursos do LOG-MANAGER em sua construção.
Principais métodos
Método | Descrição |
---|---|
METHOD STATIC VOID ERROR (cLog AS CHARACTER) | Exibe no arquivo de log o valor de cLog na estrutura para o rastreamento Correspondente ao nível 1 para a exibição do nível configurado. |
METHOD STATIC VOID WARNING (cLog AS CHARACTER) | Exibe no arquivo de log o valor de cLog na estrutura para o rastreamento Correspondente ao nível 2 para a exibição do nível configurado. |
METHOD STATIC VOID INFO (cLog AS CHARACTER) | Exibe no arquivo de log o valor de cLog na estrutura para o rastreamento Correspondente ao nível 3 para a exibição do nível configurado. |
METHOD STATIC VOID DEBUG (cLog AS CHARACTER) | Exibe no arquivo de log o valor de cLog na estrutura para o rastreamento Correspondente ao nível 4 para a exibição do nível configurado. |
Trecho de código - Exemplo Progress
O exemplo a seguir demonstra a utilização dos principais métodos para a exibição da mensagem nos arquivo de log, onde os valores complementares (UID, SEQUENCIA e ORIGEM) são preenchidos automaticamente. - Client
Bloco de código | ||||||
---|---|---|---|---|---|---|
|
Trecho de código - Exemplo Progress - AppServer
...
title | clientlog |
---|
USING com.totvs.framework.utp.*.
...
TOTVSLogUtil:ERROR ("Teste - error").
TOTVSLogUtil:WARNING ("Teste - warning").
TOTVSLogUtil:INFO ("Teste - info").
TOTVSLogUtil:DEBUG ("Teste - debug").
... |
Caso o nível de log do CLIENT Progress esteja adequado para a exibição, será apresentada a mensagem abaixo com suas devidas formatações.
Bloco de código | ||
---|---|---|
| ||
... 4GL TOTVSLog [ERROR] f810b395-d37f-a598-8c14-31114c281f03|0|ClIENT|Teste - error
... 4GL TOTVSLog [WARNING] f810b395-d37f-a598-8c14-31114c281f03|1|ClIENT|Teste - warning
... 4GL TOTVSLog [INFO] f810b395-d37f-a598-8c14-31114c281f03|2|ClIENT|Teste - info
... 4GL TOTVSLog [DEBUG] f810b395-d37f-a598-8c14-31114c281f03|3|ClIENT|Teste - debug |
Se o exemplo apresentado anteriormente for executado no AppServer, a origem é automaticamente identificada e exibida no arquivo .server.log, onde o nível de log configurado também é considerado para a mensagem.
Bloco de código | ||
---|---|---|
| ||
... AS TOTVSLog [ERROR] 88f2301d-73f1-4b60-849d-cbb350c8399c|2|APPSERVER|Teste - error
... AS TOTVSLog [WARNING] 88f2301d-73f1-4b60-849d-cbb350c8399c|3|APPSERVER|Teste - warning
... AS TOTVSLog [INFO] 88f2301d-73f1-4b60-849d-cbb350c8399c|4|APPSERVER|Teste - info |
Dica | ||
---|---|---|
| ||
É possível informar manualmente os valores UID, SEQUENCIA e ORIGEM de acordo com a sua necessidade. Consulte a classe com/totvs/framework/utp/TOTVSLogUtil.cls para mais informações dos métodos e atributos existentes. |
Envio de requisições Progress → Java
O método setTOTVSLogRequest deve ser utilizado em cada requisição REST (Progress) que possui como destino um endpoint em Java.
A seguir um exemplo de utilização deste método:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
USING com.totvs.framework.utp.*.
...
DEFINE VARIABLE oRequestBuilder AS RequestBuilder NO-UNDO.
oRequestBuilder = RequestBuilder:POST(httpUrl, oJson)
:AddHeader("Verify-User-Access-Type", "no")
:AddHeader("Hashed-Password", "yes")
:UsingBasicAuthentication(basicCredentials)
:WithData(oEntity, 'multipart/form-data').
TOTVSLogUtil:setTOTVSLogRequest(oRequestBuilder).
... |
asdasdasd
Bloco de código | |
---|---|
title | clientlog
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.
Nota | ||
---|---|---|
| ||
Não é necessário reiniciar o navegador e / ou Tomcat para |
...
efetivar as alterações. |
- Consultar o link https://tdn.totvs.com/pages/viewpage.action?pageId=592745663 caso necessite de mais informações.
Informações | ||
---|---|---|
| ||
Com a utilização da funcionalidade de Rastreabilidade de Logs. todas , todas as mensagens que utilizarem o conceito descrito anteriormente serão são apresentadas com a seguinte estrutura: <UID>|<SEQUENCIA|<ORIGEM>|<MENSAGEM>
|
...