Skip to content

Latest commit

 

History

History
66 lines (44 loc) · 1.54 KB

send-messages-to-mq.md

File metadata and controls

66 lines (44 loc) · 1.54 KB
layout nav_exclude
default
true

{% include support.md %}

Enqueue Monolog Handlers

The package provides handlers for Monolog. These handler allows to send logs to MQ using any queue-interop compatible transports.

Installation

You have to install monolog itself, queue interop handlers and one of the transports. For the simplicity we are going to install the filesystem based MQ.

composer require enqueue/monolog-queue-handler monolog/monolog enqueue/fs

Usage

<?php

use Monolog\Handler\QueueInteropHandler;
use Monolog\Logger;

require_once __DIR__.'/vendor/autoload.php';

$context = (new \Enqueue\Fs\FsConnectionFactory('file://'.__DIR__.'/queue'))->createContext();

// create a log channel
$log = new Logger('name');
$log->pushHandler(new QueueInteropHandler($context));

// add records to the log
$log->warning('Foo');
$log->error('Bar');

the consumer may look like this:

<?php

use Enqueue\Consumption\QueueConsumer;
use Interop\Queue\Message;
use Interop\Queue\Processor;

require_once __DIR__.'/vendor/autoload.php';

$context = (new \Enqueue\Fs\FsConnectionFactory('file://'.__DIR__.'/queue'))->createContext();

$consumer = new QueueConsumer($context);
$consumer->bindCallback('log', function(Message $message) {
    echo $message->getBody().PHP_EOL;

    return Processor::ACK;
});

$consumer->consume();

back to index