Вход Регистрация
Файл: onlinepoisk.wm-scripts.ru/vendor/silex/silex/silex/src/Silex/Provider/MonologServiceProvider.php
Строк: 126
<?php

/*
 * This file is part of the Silex framework.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SilexProvider;

use 
MonologLogger;
use 
MonologHandlerStreamHandler;
use 
SilexApplication;
use 
SilexServiceProviderInterface;
use 
SymfonyComponentHttpFoundationRequest;
use 
SymfonyComponentHttpFoundationResponse;
use 
SymfonyBridgeMonologHandlerDebugHandler;
use 
SymfonyComponentHttpKernelExceptionHttpExceptionInterface;

/**
 * Monolog Provider.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class MonologServiceProvider implements ServiceProviderInterface
{
    public function 
register(Application $app)
    {
        if (
$bridge class_exists('SymfonyBridgeMonologLogger')) {
            
$app['logger'] = function () use ($app) {
                return 
$app['monolog'];
            };

            
$app['monolog.handler.debug'] = function () use ($app) {
                return new 
DebugHandler($app['monolog.level']);
            };
        }

        
$app['monolog.logger.class'] = $bridge 'SymfonyBridgeMonologLogger' 'MonologLogger';

        
$app['monolog'] = $app->share(function ($app) {
            
$log = new $app['monolog.logger.class']($app['monolog.name']);

            
$log->pushHandler($app['monolog.handler']);

            if (
$app['debug'] && isset($app['monolog.handler.debug'])) {
                
$log->pushHandler($app['monolog.handler.debug']);
            }

            return 
$log;
        });

        
$app['monolog.handler'] = function () use ($app) {
            return new 
StreamHandler($app['monolog.logfile'], $app['monolog.level']);
        };

        
$app['monolog.level'] = function () {
            return 
Logger::DEBUG;
        };

        
$app['monolog.name'] = 'myapp';
    }

    public function 
boot(Application $app)
    {
        
$app->before(function (Request $request) use ($app) {
            
$app['monolog']->addInfo('> '.$request->getMethod().' '.$request->getRequestUri());
        });

        
$app->error(function (Exception $e) use ($app) {
            
$message sprintf('%s: %s (uncaught exception) at %s line %s'get_class($e), $e->getMessage(), $e->getFile(), $e->getLine());
            if (
$e instanceof HttpExceptionInterface && $e->getStatusCode() < 500) {
                
$app['monolog']->addError($message);
            } else {
                
$app['monolog']->addCritical($message);
            }
        }, 
255);

        
$app->after(function (Request $requestResponse $response) use ($app) {
            
$app['monolog']->addInfo('< '.$response->getStatusCode());
        });
    }
}
Онлайн: 1
Реклама