%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/tif-dev/wp-content/plugins/worker/src/Monolog/Processor/
Upload File :
Create Path :
Current File : //var/www/tif-dev/wp-content/plugins/worker/src/Monolog/Processor/IntrospectionProcessor.php

<?php

/*
 * This file is part of the Monolog package.
 *
 * (c) Jordi Boggiano <j.boggiano@seld.be>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

/**
 * Injects line/file:class/function where the log message came from
 *
 * Warning: This only works if the handler processes the logs directly.
 * If you put the processor on a handler that is behind a FingersCrossedHandler
 * for example, the processor will only be called once the trigger level is reached,
 * and all the log records will have the same file/line/.. data from the call that
 * triggered the FingersCrossedHandler.
 *
 * @author Jordi Boggiano <j.boggiano@seld.be>
 */
class Monolog_Processor_IntrospectionProcessor implements Monolog_Processor_ProcessorInterface
{
    private $level;

    private $skipClassesPartials;

    public function __construct($level = Monolog_Logger::DEBUG, array $skipClassesPartials = array('Monolog_'))
    {
        $this->level               = $level;
        $this->skipClassesPartials = $skipClassesPartials;
    }

    /**
     * @param array $record
     *
     * @return array
     */
    public function callback(array $record)
    {
        // return if the level is not high enough
        if ($record['level'] < $this->level) {
            return $record;
        }

        $trace = debug_backtrace();

        // skip first since it's always the current method
        array_shift($trace);
        // the call_user_func call is also skipped
        array_shift($trace);

        $i = 0;

        while (isset($trace[$i]['class'])) {
            foreach ($this->skipClassesPartials as $part) {
                if (strpos($trace[$i]['class'], $part) !== false) {
                    $i++;
                    continue 2;
                }
            }
            break;
        }

        // we should have the call source now
        $record['extra'] = array_merge(
            $record['extra'],
            array(
                'file'     => isset($trace[$i - 1]['file']) ? $trace[$i - 1]['file'] : null,
                'line'     => isset($trace[$i - 1]['line']) ? $trace[$i - 1]['line'] : null,
                'class'    => isset($trace[$i]['class']) ? $trace[$i]['class'] : null,
                'function' => isset($trace[$i]['function']) ? $trace[$i]['function'] : null,
            )
        );

        return $record;
    }
}

Zerion Mini Shell 1.0