Histórico da Página
...
Quando uma execução em modo DEBUG é acionada a partir do menu, caso a aplicação execute outra aplicação em modo JOB ou ONLINE de modo que esta execução seja realizada em uma nova Thread no AppServer, a geração de LOGs era comprometida, fazendo como que o LOG de execução destas demais aplicações , o sistema não está gerando o conteúdo do LOG de execução destas novas aplicações juntamente com o LOG/DEBUG da aplicação inicial, dificultando a rastreabilidade de informações das execuções destas demais aplicações.
03. SOLUÇÃO
Pasta de geração de arquivos LOG/DEBUG
Toda execução de programa em modo DEBUG irá gerar arquivos de LOG distintos para cada nova Thread iniciada no AppServer a partir da rotina inicial. A pasta de geração dos arquivos de LOG/DEBUG no servidor passou a ser gerada nas seguintes mudou e agora os arquivos de LOG são gerados no disco do AppServer respeitando o seguinte padrão de pastas:
Execução em modo DEBUG ou
...
FRAMEWORK → [ ROOTPATH ] / temp / debug / [ login_usuario ] / [ pasta_logs ]
Execução em modo PROFILER → [ ROOTPATH ] / temp / profiler/ [ login_usuario ] / [ pasta_logs ]
Onde:
ROOTPATH
ROOTPATH é a chave de configuração de cada ambiente no AppServer com uma pasta raiz. A partir dessa pasta o sistema irá fazer uso de pastas relativas.
login login_usuario é o login do usuário Logix que realizou a execução em modo DEBUG/PROFILER.
pasta pasta_logs é o nome da pasta onde serão armazenados os arquivos contendo o LOG das execuções em modo DEBUG/PROFILER realizadas a partir da aplicação principal
Rotinas ajustadas para respeitar a geração de LOG/DEBUG por pasta no AppServer
Existem algumas formas de iniciar a execução de rotinas a partir do Logix que foram revisadas e devidamente ajustadas para que todas respeitem uma única forma de geração de arquivos de LOG/DEBUG com base no padrão de pasta de destino no disco do Servidor de Aplicação (AppServer) e também envolvendo o nome dos arquivos de LOG envolvidos.
...
tabs | Passo 01, Passo 02, Passo 03, Passo 04 |
---|---|
ids | passo1,passo2 |
Estas alterações envolveram a execução de rotinas/programas nos seguintes pontos:
A execução de programa a partir do menu, utilizando um dos atalhos disponíveis.
Para informações a respeito de cada modo de execução, acesse LGX - Chaves Profile no tópico Geração de Log com Debug.
Qualquer outra rotina/programa executada a partir da aplicação acionada a partir de um atalho do menu irá gerar arquivos de LOG na mesma pasta de destino, gerando sempre um novo arquivo de LOG pra execuções realizadas a partir de nova Thread gerada no AppServer.
Execução de requisições APIs REST / SOAP
Quando a chave de profile logix.debug estiver configurada com valor correspondente a um dos modos de DEBUG ativo, no ato da execução de uma requisição REST/SOAP no AppServer, serão gerados os arquivos de LOG na pasta do AppServer correspondente ao modo de execução DEBUG indicado.
Execuções manuais de gatilhos do Agendador de Tarefas
Ao realizar a execução manual de gatilhos do Agendador de Tarefas a partir do botão Processar no programa JOB0003 (Cadastro de Gatilhos), caso selecione a execução em modo DEBUG, a geração dos LOGs também foi devidamente revisada para respeitar o mesmo padrão de geração de LOGs.
Nomes dos arquivos de LOG
O nome dos arquivos de LOG serão gerados seguindo a seguinte padronização:
Execução em modo DEBUG ou FRAMEWORK → [ sequencia] _debug_thread_[ id_thread ]_[ rotina ]
Execução em modo PROFILER → [ sequencia] _profiler_thread_[ id_thread ]_[ rotina ]
Onde:
sequencia é um código numérico de 5 digitos gerado de forma sequencial crescente, iniciando de 00000 e incrementado um a um a cada nova thread criada para execução de outra rotina/programa a partir da rotina principal.
login_usuario é o login do usuário Logix que realizou a execução em modo DEBUG/PROFILER.
pasta_logs é o nome da pasta onde serão armazenados os arquivos contendo o LOG das execuções em modo DEBUG/PROFILER realizadas a partir da aplicação principal
Exemplo de pasta com geração de arquivos de LOG do programa MAN10021 (Cadastro de Itens)
Neste exemplo veja que o programa MAN10021 é a primeira aplicação executada (programa principal), onde a sequência do arquivo de LOG é 00000 (zero) e os demais arquivos de LOG possuem sequências subsequentes 00001, 00002 e 00003, indicando que a partir da execução do programa principal MAN10021 foram acionados os programas SUP7750, WMS6173 e SUP2240 e novas threads geradas no AppServer.
Para o usuário a geração de novas threads no AppServer é imperceptível, mas na geração de arquivos de LOG isso indica um processo totalmente independente e que utiliza uma conexão de banco de dados diferente da aplicação principal.
04. DEMAIS INFORMAÇÕES
Informações | ||
---|---|---|
| ||
As execuções em modo PROFILER são geradas e mantidas apenas no servidor, ou seja, por mais que o usuário selecione a opção de execução em modo PROFILER a partir do menu, o servidor gera as informações de PROFILER apenas após o término da execução da rotina/aplicação e isso pode levar um certo tempo, dependendo do volume de processamento executado. Com isso os arquivos de LOG gerados em modo PROFILER não são transferidos pra máquina local do usuário após a finalização da aplicação no menu. |
Card documentos Informacao Disponível a partir do pacote oficial 12.1.28 ou Framework Fix 12.1.27.(fix03)
...
default | yes |
---|---|
referencia | passo1 |
...
default | no |
---|---|
referencia | passo2 |
04. DEMAIS INFORMAÇÕES
Card documentos Informacao Use esse box para destacar informações relevantes e/ou de destaque. Titulo IMPORTANTE!
05. ASSUNTOS RELACIONADOS
- LGX - Chaves Profile
- Função para geração de mensagens no LOG do AppServer respeitando o modo de DEBUG de execução - LOG_consoleDebugMessage
Templatedocumentos |
---|
HTML |
---|
<style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } .aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { background: #FF9900; !important } .menu-item.active-tab { border-bottom: none !important; } </style> |