# Logs

## Visão Geral

O sistema **ConexX /** **XT Middleware**, em conjunto com os serviços **ConexX Driver**, gera arquivos de log contínuos que permitem monitorar a execução, identificar falhas e validar a comunicação entre módulos, dispositivos e APIs externas (como Senior ou Suricato).

{% hint style="info" %}
Recomenda-se utilizar o utilitário baretail.exe (ou ferramentas equivalentes como “LogExpert”) para visualizar logs em tempo real, evitando a necessidade de abrir e atualizar manualmente o arquivo.
{% endhint %}

## Diretórios de Log

Os arquivos de log são gravados automaticamente no diretório de instalação de cada serviço:

| Serviço        | Diretório Padrão               |
| -------------- | ------------------------------ |
| ConexX         | `...\TSI-ConexService\log`     |
| MiddlewareX/XT | `...\TSI-ConexXMiddleware\log` |
| ConexXT        | `...\TSI-ConexXTService\log`   |

## Estrutura Padrão de Linha

Cada linha de log segue o formato padrão: Data | Tipo do Log | Numero do Serviço - PID | Thread | Classe de Execução > \* Função ou Evento - IP/ID do Equipamento - Detalhamento da Ação

| Campo       | Descrição                                                           |
| ----------- | ------------------------------------------------------------------- |
| Data        | Momento exato da ocorrência no formato AAAA-MM-DD HH:MM:SS.mmm      |
| Tipo do Log | Nível de severidade (INFO, WARN, ERROR, DEBUG)                      |
| PID         | Identificador do processo de execução do serviço                    |
| Thread      | Thread responsável pela operação                                    |
| Classe      | Classe Java responsável pela execução ou captura do evento          |
| Descrição   | Mensagem da função executada, IP do dispositivo e detalhe do evento |

## Exemplo de Log Completo

```
2025-05-05 01:48:34.965 | ERROR | PID[28220] | Th[http-nio-8082-exec-7] - Cl[.c.t.c.m.p.c.h.ConexManager] > 
* Device Status - 192.168.64.186 - DEVICE_STATUS - Device with IP 192.168.64.186 not found.
```

**Neste exemplo, temos:**

* **Data/Hora:** 05/05/2025 01:48:34.965
* **Tipo do Log:** ERROR (Erro de execução)
* **PID:** 28220 (processo do Middleware)
* **Thread:** http-nio-8082-exec-7 (thread do serviço web)
* **Classe:** ConexManager
* **Descrição:** O equipamento 192.168.64.186 não foi localizado

{% hint style="warning" %}
Logs com “Device not found” geralmente indicam falha de comunicação entre Middleware e o equipamento, verifique IP, rede e configuração do ConexXT.
{% endhint %}

## Padrões de Mensagens de Log

Os logs seguem sempre a mesma estrutura, apenas variando o conteúdo após o símbolo `> *` Abaixo estão os padrões mais comuns:

<details>

<summary>4.1 — Logs de Erro vindos da API da Senior</summary>

```
2025-05-05 08:59:29.814 | ERROR | PID[28220] | Th[Pooling Pendency Senior] - Cl[.c.t.c.m.p.s.h.CodeUtilsSenior] > 
* Send Request Card List - Error when handling Card List load model: 404 Not Found on GET request for "https://sam-api.senior.com.br/sdk/v1/device/access/225/card"
```

* **Origem:** MiddlewareX (módulo de integração com Senior)
* **Causa:** API retornou 404 Not Found
* **Ação Recomendada:** Validar URL da API e credenciais no arquivo de configuração

</details>

<details>

<summary>4.2 — Erros vindos do ConexX</summary>

```
2025-05-05 10:27:33.225 | ERROR | PID[28220] | Th[http-nio-8082-exec-3] - Cl[.c.t.c.m.p.c.w.r.ApiWebhookResource] > 
* Handler Message Webhook Received - The Webhook was unable to identify a pending execution or the message to be handled: 
WebhookGenericModel [error=false, datePost=2025-05-05T10:24:13, pendencyType=BIOMETRY_REGISTRATION_ERROR, deviceIpAddress=192.168.91.104] 
```

* **Origem:** Webhook (ConexX → MiddlewareX)&#x20;
* **Significado:** Mensagem recebida sem correspondência a uma pendência ativa&#x20;
* **Correção:** Verificar se o dispositivo está corretamente vinculado ao Middleware

</details>

<details>

<summary>4.3 — Log de Erro do ConexXT</summary>

```
2025-05-08 09:01:28.626 | ERROR | PID[42832] | Th[http-nio-8090-exec-8] - Cl[ConexClientManager] > 
Error: Nenhum dispositivo encontrado para o termo de busca: 192.168.0.203
```

* **Origem:** ConexXT
* **Classe:** ConexClientManager
* **Descrição:** Não há dispositivos configurados com o IP informado
* **Solução:** Confirmar cadastro do equipamento e sincronização com Middleware

</details>

## Tipos de Log e Interpretação

| Tipo  | Descrição                                                               | Ação Recomendável                                        |
| ----- | ----------------------------------------------------------------------- | -------------------------------------------------------- |
| INFO  | Informações gerais do sistema (inicialização, conexões ativas)          | Sem ação necessária                                      |
| WARN  | Avisos que indicam possíveis inconsistências (ex: atraso de resposta)   | Verificar desempenho da rede ou tempo de resposta        |
| ERROR | Falhas críticas de execução (ex: API não responde, dispositivo ausente) | Consultar dependências, IPs e parâmetros de configuração |
| DEBUG | Detalhes internos de processamento, geralmente desativados em produção  | Utilizar apenas em ambientes de teste                    |

## Boas Práticas de Análise

* Utilize o baretail.exe com auto-scroll ativo para acompanhar logs em tempo real.
* Crie cópias de logs antes de enviá-los ao suporte para evitar truncamento durante execução.
* Verifique sempre o PID - múltiplos processos podem estar executando simultaneamente.
* Priorize logs ERROR e WARN em ambiente produtivo.
* Registre a data e hora do problema para facilitar correlação com eventos da Senior ou Suricato.

{% hint style="info" %}
Antes de compartilhar logs, gere uma cópia para evitar perda de dados devido a truncamento ou rotação de arquivo.
{% endhint %}

## Diagnóstico Avançado

* Se houver falhas de comunicação entre Middleware e equipamentos, revise os logs do ConexX.
* Confirmar que o serviço TelematicaSuricato está em execução antes de iniciar diagnóstico.
* Em caso de “Device not found”, realizar ping no IP indicado e checar firewall local.

{% hint style="danger" %}
O log é a principal ferramenta de auditoria e suporte técnico. Com ele, é possível determinar o ponto exato onde ocorreu a falha, seja na comunicação entre módulos, na API Senior, ou na resposta do equipamento.
{% endhint %}

## FAQ - Perguntas Frequentes

<details>

<summary>Onde ficam os arquivos de log?</summary>

Os logs ficam em `C:\TSI-ConexXMiddleware\log` e também podem ser consultados no painel de administração.

</details>

<details>

<summary>Como ativar logs em modo DEBUG? </summary>

Altere o nível de log no arquivo de configuração (`logback.xml` ou `log4j.properties`) e reinicie o serviço.

</details>

<details>

<summary>O log não está sendo gerado, o que verificar?</summary>

Confirme se o diretório de logs existe e se o serviço tem permissão de escrita. Verifique também a rotação de arquivos.

</details>

<details>

<summary>Como analisar erros críticos?</summary>

Procure por linhas com `ERROR` ou `EXCEPTION`. O timestamp ajuda a cruzar eventos com falhas observadas.

</details>

<details>

<summary>Os logs podem ser enviados automaticamente ao suporte?</summary>

Sim, há scripts opcionais que compactam e enviam os arquivos mais recentes para o suporte da Telemática.

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://software-telematica-com.gitbook.io/suricato-docs/conex/conexx-e-xt/logs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
