# Инструмент Log Notifier
## Описание
Инструмент `log_notifier` — это простой gRPC-сервис на Go, который записывает структурированное лог-сообщение в свой собственный стандартный вывод. Он в основном используется для создания наблюдаемых событий из рабочего процесса агента, таких как отчет о завершении задачи, отметка важных изменений состояния или фиксация предупреждений.
Инструмент использует стандартную библиотеку `slog`, создавая логи в формате JSON.
## Параметры
Инструмент принимает следующие аргументы в виде JSON-объекта:
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|-----------|----------|--------------|--------------|---------------------------------------------------------------------------------------------------------------------------|
| `message` | `string` | **Да** | | Текст уведомления для логирования. |
| `level` | `string` | Нет | `INFO` | Уровень важности лога. Поддерживаемые значения: `INFO`, `WARNING` (или `WARN`) и `ERROR`. Любое другое значение будет сведено к `INFO`. |
## Ответ
* **Успешное логирование:** Если лог успешно записан, инструмент возвращает строку `"Notification successfully logged."`.
* **Ошибка:** Если обязательный параметр `message` отсутствует, инструмент возвращает сообщение об ошибке.
## Пример использования
Вот пример использования инструмента `log_notifier` для логирования предупреждающего сообщения.
**Запрос:**
```bash
curl -X POST http://localhost:8002/v1/tools:run \
-d '{
"name": "log_notifier",
"arguments": {
"message": "API вернул неожиданный код состояния. Продолжаем работу с данными по умолчанию.",
"level": "WARNING"
}
}'
```
**Успешный ответ:**
```json
{
"result": {
"stringValue": "Notification successfully logged."
}
}
```
Это приведет к тому, что собственный процесс инструмента `log_notifier` запишет в свой стандартный вывод JSON-лог, подобный этому:
```json
{"time":"2023-10-27T10:30:00.123Z","level":"WARN","msg":"API вернул неожиданный код состояния. Продолжаем работу с данными по умолчанию."}
```
## Конфигурация
Конфигурация инструмента управляется через файл `config.json`, расположенный в директории инструмента.
**Пример `config.json`:**
```json
{
"port": 50058,
"command": ["go", "run", "."]
}
```
## Проверки состояния и логирование
* **Проверки состояния:** Этот инструмент реализует стандартный протокол gRPC Health Checking Protocol.
* **Логирование:** Основная функция этого инструмента — создание структурированных логов в свой собственный стандартный вывод.