ИНТЕГРАЦИЯ / PHP

Логирование в PHP через REST API

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

Один POST-запросБез хранения логов на сервере
01 / БЫСТРЫЙ СТАРТ

Отправка через cURL

Отправьте первое событие из PHP за пару минут. Consumer Key выдаётся после регистрации в веб-интерфейсе.

<?php
$url = "https://logger.dp-projects.ru/sendmess";

$payload = [
    'key'    => 'ваш-consumer-key',
    'module' => 'payment-service',
    'mess'   => [
        'event'  => 'payment_processed',
        'amount' => 1000,
        'status' => 'success',
    ],
    'mode'   => 'regular',
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode($payload),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 5,
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
02 / ИНТЕГРАЦИЯ С ФРЕЙМВОРКОМ

Обработчик для Monolog

Monolog — стандарт логирования в PHP и Laravel. Свой Handler позволит отправлять в Logger любые записи, включая уже существующие вызовы $logger->info().

<?php
use Monolog\Logger;
use Monolog\Handler\AbstractProcessingHandler;
use Monolog\Level;
use Monolog\LogRecord;

class LoggerAPIHandler extends AbstractProcessingHandler
{
    public function __construct(private string $key, string $module = 'php-app')
    {
        parent::__construct(Level::Debug);
        $this->module = $module;
    }

    protected function write(LogRecord $record): void
    {
        $ch = curl_init("https://logger.dp-projects.ru/sendmess");
        curl_setopt_array($ch, [
            CURLOPT_POST       => true,
            CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
            CURLOPT_POSTFIELDS => json_encode([
                'key'    => $this->key,
                'module' => $this->module,
                'mess'   => $record->formatted,
            ]),
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT        => 3,
        ]);
        curl_exec($ch);
        curl_close($ch);
    }
}

$logger = new Logger('app');
$logger->pushHandler(new LoggerAPIHandler('ваш-consumer-key'));
$logger->info('Сервис запущен');
03 / ЧТО ВАЖНО ЗНАТЬ

Особенности логирования из PHP

  1. 01

    Без Composer-зависимостей

    Базовый пример работает на чистом PHP через cURL или file_get_contents.

  2. 02

    Совместимо с Laravel и Symfony

    Monolog уже встроен в оба фреймворка, поэтому Handler добавляется в существующий стек.

  3. 03

    Не хранится на сервере

    Logger доставляет события, а не ведёт архив — это осознанное решение продукта.

04 / ВОПРОСЫ

Частые вопросы

Как быстро отправить лог из PHP без библиотек?

Используйте file_get_contents с stream_context_create или cURL — полный пример cURL приведён выше, он занимает около двадцати строк.

Работает ли Logger с Laravel?

Да. Добавьте Handler в config/logging.php как отдельный канал, и записи Log::info() будут уходить в Logger через Monolog.

Есть ли лимит на размер сообщения?

Сервер принимает JSON до 100 МБ, но для логов разумно держать сообщения компактными — так их проще читать в реальном времени.

05 / ДРУГИЕ ЯЗЫКИ
ГОТОВЫ К ПОДКЛЮЧЕНИЮ?

Поймайте следующее событие.

Откройте клиент, получите Consumer Key и отправьте первый лог из PHP.

Начать работу