attogram/attogram

View on GitHub
Attogram/EventLogger.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
// Attogram Framework - EventLogger class v0.1.4

namespace Attogram;

use Monolog\Logger;
use Monolog\Handler\AbstractProcessingHandler;

class EventLogger extends AbstractProcessingHandler
{
    private $database;

    /**
     * start the event Logger.
     *
     * @param object $database Attogram Database object
     * @param string $level    (optional) Minimum reporting level, Defaults to debug
     * @param bool   $bubble   (optional) Bubble up, Defaults to true
     */
    public function __construct($database, $level = Logger::DEBUG, $bubble = true)
    {
        $this->database = $database;
        parent::__construct($level, $bubble);
    }

    /**
     * write an event to the Database.
     *
     * @param array $record
     */
    protected function write(array $record)
    {
        $this->database->queryb(
            'INSERT INTO event (channel,level,message,time) VALUES (:channel,:level,:message,:time)',
            array(
                'channel' => $record['channel'],
                'level' => $record['level'],
                'message' => $record['formatted'],
                'time' => $record['datetime']->format('U')
            )
        );
    }
} // end class class EventLogger