LoginSignup
1
1

More than 5 years have passed since last update.

FluentHandler for Monolog

Last updated at Posted at 2015-10-29

Dependencies

FluentHandler.php
use Monolog\Logger;
use Monolog\Handler\AbstractProcessingHandler;

use Fluent\Logger\Entity;
use Fluent\Logger\FluentLogger;

class FluentHandler extends AbstractProcessingHandler
{
    protected $logger;

    public function __construct($host = FluentLogger::DEFAULT_ADDRESS,
                                $port = FluentLogger::DEFAULT_LISTEN_PORT,
                                $level = Logger::DEBUG,
                                $bubble = true)
    {

        parent::__construct($level, $bubble);
        $this->logger = new FluentLogger($host, $port);
    }

    /**
     * {@inheritdoc}
     */
    protected function write(array $record)
    {
        $tag  = $record['channel'] . '.' . strtolower($record['level_name']);
        $time = $record['datetime']->getTimestamp();

        $data = $record['context'];
        $data['message'] = $record['message'];

        $entity = new Entity($tag, $data, $time);
        $this->logger->post2($entity);
    }
}
index.php
$autoload = include realpath(__DIR__ . '/vendor/autoload.php');

use Monolog\Logger;

include realpath(__DIR__ . '/FluentHandler.php');

$log = new Logger('fluentd.test');
$log->pushHandler(new FluentHandler("unix:///var/run/td-agent/td-agent.sock"));
$log->warning('message', array("from"=>"userA", "to"=>"userB"));

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1