Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Informações
titleInformação

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

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

...

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. 

...

Bloco de código
titlelib/totvs-lib
commons-logging-1.2.jar
log4j-1.2.12.jar
totvs-fwk-log-<VERSAO>-NFRW-SNAPSHOT.jar
totvs-valve-2.0.jar

...

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

...

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

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
languagexml
titlepom.xml
<dependency>
	<groupId>com.totvs.framework</groupId>
	<artifactId>totvs-fwk-log<util</artifactId>
	<version>${project.version}</version>
	<scope>provided</scope>
</dependency>

Principais métodos

...

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
languagejava
titleExemplo.java
linenumberstrue
...
TOTVSLog.threadLocalTotvsLog.get()TOTVSLogUtil.debug("RASTREABILIDADE LOGS - TESTE!");
...

...

Dica
titleJavadoc

É 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

Para a exibição da funcionalidade de Rastreabilidade de Logs para para fontes Progress, foi implementada a classe dtsLog TOTVSLogUtil, no qual utiliza recursos do LOG-MANAGER em sua construção.

...

Bloco de código
languagejava
titleexemplo.p
linenumberstrue
USING com.totvs.framework.utp.*.

...  

dtsLogTOTVSLogUtil:ERROR ("Teste - error"). 
dtsLogTOTVSLogUtil:WARNING ("Teste - warning"). 
dtsLogTOTVSLogUtil:INFO ("Teste - info"). 
dtsLogTOTVSLogUtil: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
titleclientlog
... 4GL LOGDTSTOTVSLog [ERROR] f810b395-d37f-a598-8c14-31114c281f03|0|ClIENT|Teste - error
... 4GL LOGDTSTOTVSLog [WARNING] f810b395-d37f-a598-8c14-31114c281f03|1|ClIENT|Teste - warning
... 4GL LOGDTSTOTVSLog [INFO] f810b395-d37f-a598-8c14-31114c281f03|2|ClIENT|Teste - info
... 4GL LOGDTSTOTVSLog [DEBUG] f810b395-d37f-a598-8c14-31114c281f03|3|ClIENT|Teste - debug

...

Bloco de código
titleserver.log
... AS LOGDTSTOTVSLog [ERROR] 88f2301d-73f1-4b60-849d-cbb350c8399c|2|APPSERVER|Teste - error
... AS LOGDTSTOTVSLog [WARNING] 88f2301d-73f1-4b60-849d-cbb350c8399c|3|APPSERVER|Teste - warning
... AS LOGDTSTOTVSLog [INFO] 88f2301d-73f1-4b60-849d-cbb350c8399c|4|APPSERVER|Teste - info
Dica
titledtsLogTOTVSLogUtil.cls

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

Consulte a classe com/totvs/framework/utp/dtsLogTOTVSLogUtil.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
languagejava
titlerequest_java.p
linenumberstrue
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).

...

TELA - PROPRIEDADES GERAIS

...