# Configurações de armazenamento de logs de serviços

Por padrão, o armazenamento de logs está configurado da seguinte forma:

* Os logs são armazenados em `/log` subdiretório dentro do diretório de cada um dos serviços backend.
* Os logs são armazenados como arquivos de texto simples.
* Os logs são mantidos por uma semana; depois são rotacionados e os antigos são excluídos.

Todos os três serviços backend em Java possuem seus próprios logs. Os parâmetros acima podem ser alterados se necessário. Eles são definidos no **logback.xml** arquivo de cada serviço. Você pode encontrar este arquivo em um `conf` diretórios dos serviços:

* Linux: `/home/java/{service-name}/conf/logback.xml`
* Windows: `C:\java\{service-name}\conf\logback.xml`

Como esse arquivo está contido em cada um dos diretórios dos serviços, as configurações abaixo devem ser aplicadas separadamente para cada um dos arquivos.

{% hint style="info" %}
As configurações podem ser aplicadas individualmente ou em qualquer combinação. Selecione as configurações desejadas dependendo de seus objetivos.
{% endhint %}

## Localização dos logs

Por padrão, os logs são armazenados nas pastas dos serviços no subdiretório log, mas por algum motivo você pode querer armazená-los separadamente em um diretório personalizado.

Para configurar isso, abra o **logback.xml** arquivo e encontre as seguintes linhas:

```
<file>log/log.txt</file>

<fileNamePattern>log/log.%d{yyyy-MM-dd}.log</fileNamePattern>
```

Altere a `log/` entrada para o caminho absoluto do seu diretório personalizado de logs.

Por exemplo, se o diretório for `/my/directory/for/logs/`, então as linhas devem ficar assim:

```
<file>/my/directory/for/logs/log.txt</file>

<fileNamePattern>/my/directory/for/logs/log.%d{yyyy-MM-dd}.log</fileNamePattern>
```

Salve o arquivo e reinicie a plataforma para aplicar as alterações. A partir de agora, os logs serão gravados no diretório personalizado.

### Links simbólicos

Em sistemas Linux, existe uma maneira alternativa de armazenar logs em um diretório personalizado. Em vez de alterar a configuração do serviço, você pode criar links simbólicos para os diretórios personalizados desejados. Veja como fazer:

1. Pare os serviços Navixy.
2. Crie novos subdiretórios em seu novo diretório personalizado (por exemplo `/my/directory/for/logs/`):

```
mkdir -p /my/directory/for/logs/api-server/log
mkdir -p /my/directory/for/logs/sms-server/log
mkdir -p /my/directory/for/logs/tcp-server/log
```

3. Mova os logs existentes dos serviços para seus novos diretórios:

```
mv /home/java/api-server/log/* /my/directory/for/logs/api-server/log/
mv /home/java/sms-server/log/* /my/directory/for/logs/sms-server/log/
mv /home/java/tcp-server/log/* /my/directory/for/logs/tcp-server/log/
```

4. Exclua os diretórios antigos:

```
rmdir /home/java/api-server/log
rmdir /home/java/sms-server/log
rmdir /home/java/tcp-server/log
```

5. Crie links simbólicos:

```
ln -s /my/directory/for/logs/api-server/log /home/java/api-server/log
ln -s /my/directory/for/logs/sms-server/log /home/java/sms-server/log
ln -s /my/directory/for/logs/tcp-server/log /home/java/tcp-server/log
```

6. Reinicie os serviços.

Depois que isso for feito, os logs serão gravados em seus novos diretórios personalizados.

## Arquivamento de logs

Em instâncias com um grande número de dispositivos (quando há mais de alguns milhares deles), os logs dos serviços backend podem ocupar uma quantidade significativa de espaço em disco. Arquivar logs de dias anteriores pode ser uma ótima solução para economizar espaço em disco.

Encontre a seguinte linha em **logback.xml** arquivo:

```
<fileNamePattern>log/log.%d{yyyy-MM-dd}.log</fileNamePattern>
```

Adicione `.gz` após `log`, para que a linha fique assim:

```
<fileNamePattern>log/log.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
```

Salve o arquivo e reinicie a plataforma para aplicar as alterações. Agora, os arquivos de log dos dias anteriores serão compactados em `.gz` arquivos, consumindo muito menos espaço em disco do que arquivos de texto simples. Entretanto, o `log.txt` do dia atual ainda ficará sem compactação, pois continua sendo preenchido pela plataforma.

## Tempo de vida dos logs

O tempo de vida padrão dos logs é de 7 dias. Na maioria dos casos isso é suficiente para qualquer solução de problemas. No entanto, você pode querer manter os logs por um período mais longo ou, alternativamente, encurtá-lo. Lembre-se: quanto mais tempo os logs são armazenados, mais espaço em disco eles consomem, então trate esse valor com cuidado.

Para alterar o tempo de vida dos logs, encontre a seguinte linha em **logback.xml** arquivo:

```
<maxHistory>7</maxHistory>
```

Altere `7` para qualquer valor desejado (em dias).

Salve o arquivo e reinicie a plataforma para aplicar as alterações.
