# Настройки хранения логов сервисов

По умолчанию хранилище логов настроено следующим образом:

* Логи хранятся в `/log` подкаталоге внутри каталога каждого из backend-сервисов.
* Логи хранятся в виде обычных текстовых файлов.
* Логи хранятся в течение одной недели, затем они ротируются, а старые удаляются.

Каждый из трёх backend Java-сервисов имеет свои собственные логи. Указанные параметры можно при необходимости изменить. Они задаются в **logback.xml** файле каждого сервиса. Вы можете найти этот файл в `conf` каталогах сервисов:

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

Поскольку такой файл содержится в каждом из каталогов сервисов, приведённые ниже настройки необходимо применять отдельно для каждого файла.

{% hint style="info" %}
Настройки можно применять индивидуально или в любой комбинации. Выберите нужные параметры в зависимости от ваших целей.
{% endhint %}

## Расположение логов

По умолчанию логи хранятся в папках сервисов в подкаталоге log, однако по какой-либо причине вы можете захотеть хранить их отдельно в пользовательском каталоге.

Чтобы настроить это, откройте **logback.xml** файл и найдите следующие строки:

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

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

Измените запись `log/` на абсолютный путь к вашему пользовательскому каталогу для логов.

Например, если каталог — `/my/directory/for/logs/`, то строки должны выглядеть следующим образом:

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

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

Сохраните файл и перезапустите платформу, чтобы применить изменения. С этого момента логи будут записываться в пользовательский каталог.

### Символические ссылки

В системах Linux существует альтернативный способ хранения логов в пользовательском каталоге. Вместо изменения конфигурации сервиса вы можете создать символические ссылки на нужные пользовательские каталоги. Делается это так:

1. Остановите сервисы Navixy.
2. Создайте новые подкаталоги в вашем новом пользовательском каталоге (например, `/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. Переместите существующие логи сервисов в ваши новые каталоги:

```
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. Удалите старые каталоги:

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

5. Создайте символические ссылки:

```
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. Перезапустите сервисы.

После этого логи будут записываться в ваши новые пользовательские каталоги.

## Архивация логов

На инстансах с большим количеством устройств (когда их более нескольких тысяч) логи backend-сервисов могут занимать значительный объём дискового пространства. Архивация логов предыдущих дней может быть отличным решением для экономии дискового пространства.

Найдите следующую строку в **logback.xml** файле:

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

Добавьте `.gz` после `log`, чтобы строка выглядела так:

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

Сохраните файл и перезапустите платформу, чтобы применить изменения. Теперь файлы логов за предыдущие дни будут сжиматься в `.gz` архивы, занимая значительно меньше места на диске, чем обычные текстовые файлы. Однако текущий `log.txt` файл за текущий день по-прежнему будет оставаться несжатым, поскольку платформа продолжает его заполнять.

## Срок хранения логов

Стандартный срок хранения логов — 7 дней. В большинстве случаев этого достаточно для устранения неполадок. Однако вы можете захотеть хранить логи дольше или, наоборот, сократить этот период. Помните: чем дольше хранятся логи, тем больше дискового пространства они занимают, поэтому обращайтесь с этим параметром осторожно.

Чтобы изменить срок хранения логов, найдите следующую строку в **logback.xml** файле:

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

Измените `7` на любое желаемое значение (в днях).

Сохраните файл и перезапустите платформу, чтобы применить изменения.


---

# 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://navixy.com/docs/on-premise/ru/on-premise/how-to-guide/troubleshooting/working-with-logs/service-logs-storage-settings.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.
