public function register(Application $app) { $default_options = ['endpoint' => 'slack.com/api/', 'token' => null, 'limit_retries' => 5, 'identities' => ['Silex' => []], 'logging' => ['enabled' => false, 'channel' => '', 'identity' => '']]; if (isset($app['dz.slack.options'])) { $app['dz.slack.options'] = array_merge($default_options, $app['dz.slack.options']); } else { $app['dz.slack.options'] = $default_options; } $app['dz.slack.identity_bag'] = $app->share(function ($app) { $identityBag = new Messaging\IdentityBag(); $identityBag->createIdentities($app['dz.slack.options']['identities']); return $identityBag; }); $app['dz.slack.connection'] = $app->share(function ($app) { $connection = new Client\Connection(); $connection->setEndpoint($app['dz.slack.options']['endpoint']); $connection->setLimitRetries($app['dz.slack.options']['limit_retries']); $connection->setToken($app['dz.slack.options']['token']); return $connection; }); $app['dz.slack.client'] = $app->share(function ($app) { return new Client($app['dz.slack.connection']); }); $app['dz.slack.messaging'] = $app->share(function ($app) { return new Messaging($app['dz.slack.client'], $app['dz.slack.identity_bag']); }); if ($app['dz.slack.options']['logging']['enabled']) { $app['monolog.handler.slack'] = $app->share(function ($app) { $level = MonologServiceProvider::translateLevel($app['monolog.level']); return new SlackHandler($app['dz.slack.messaging'], $app['dz.slack.options']['logging']['channel'], $app['dz.slack.options']['logging']['identity'], $level); }); $app['monolog']->pushHandler($app['monolog.handler.slack']); } }
public function register(Application $app) { $app['logger'] = function () use($app) { return $app['monolog']; }; if ($bridge = class_exists('Symfony\\Bridge\\Monolog\\Logger')) { $app['monolog.handler.debug'] = function () use($app) { $level = MonologServiceProvider::translateLevel($app['monolog.level']); return new DebugHandler($level); }; } $app['monolog.logger.class'] = $bridge ? 'Symfony\\Bridge\\Monolog\\Logger' : 'Monolog\\Logger'; $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) { $level = MonologServiceProvider::translateLevel($app['monolog.level']); return new StreamHandler($app['monolog.logfile'], $level, $app['monolog.bubble'], $app['monolog.permission']); }; $app['monolog.level'] = function () { return Logger::DEBUG; }; $app['monolog.listener'] = $app->share(function () use($app) { return new LogListener($app['logger']); }); $app['monolog.name'] = 'myapp'; $app['monolog.bubble'] = true; $app['monolog.permission'] = null; }
public function register(Container $app) { $app['logger'] = function () use($app) { return $app['monolog']; }; if ($bridge = class_exists('Symfony\\Bridge\\Monolog\\Logger')) { $app['monolog.handler.debug'] = function () use($app) { $level = MonologServiceProvider::translateLevel($app['monolog.level']); return new DebugHandler($level); }; if (isset($app['request_stack'])) { $app['monolog.not_found_activation_strategy'] = function () use($app) { return new NotFoundActivationStrategy($app['request_stack'], array('^/'), $app['monolog.level']); }; } } $app['monolog.logger.class'] = $bridge ? 'Symfony\\Bridge\\Monolog\\Logger' : 'Monolog\\Logger'; $app['monolog'] = function ($app) { $log = new $app['monolog.logger.class']($app['monolog.name']); $handler = new Handler\GroupHandler($app['monolog.handlers']); if (isset($app['monolog.not_found_activation_strategy'])) { $handler = new Handler\FingersCrossedHandler($handler, $app['monolog.not_found_activation_strategy']); } $log->pushHandler($handler); if ($app['debug'] && isset($app['monolog.handler.debug'])) { $log->pushHandler($app['monolog.handler.debug']); } return $log; }; $app['monolog.formatter'] = function () { return new LineFormatter(); }; $app['monolog.handler'] = $defaultHandler = function () use($app) { $level = MonologServiceProvider::translateLevel($app['monolog.level']); $handler = new Handler\StreamHandler($app['monolog.logfile'], $level, $app['monolog.bubble'], $app['monolog.permission']); $handler->setFormatter($app['monolog.formatter']); return $handler; }; $app['monolog.handlers'] = function () use($app, $defaultHandler) { $handlers = array(); // enables the default handler if a logfile was set or the monolog.handler service was redefined if ($app['monolog.logfile'] || $defaultHandler !== $app->raw('monolog.handler')) { $handlers[] = $app['monolog.handler']; } return $handlers; }; $app['monolog.level'] = function () { return Logger::DEBUG; }; $app['monolog.listener'] = function () use($app) { return new LogListener($app['logger'], $app['monolog.exception.logger_filter']); }; $app['monolog.name'] = 'app'; $app['monolog.bubble'] = true; $app['monolog.permission'] = null; $app['monolog.exception.logger_filter'] = null; $app['monolog.logfile'] = null; $app['monolog.use_error_handler'] = !$app['debug']; }
public function register(Application $app) { $app['logger'] = function () use($app) { return $app['monolog']; }; if ($bridge = class_exists('Symfony\\Bridge\\Monolog\\Logger')) { $app['monolog.handler.debug'] = function () use($app) { $level = MonologServiceProvider::translateLevel($app['monolog.level']); return new DebugHandler($level); }; } $app['monolog.logger.class'] = $bridge ? 'Symfony\\Bridge\\Monolog\\Logger' : 'Monolog\\Logger'; $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) { $level = MonologServiceProvider::translateLevel($app['monolog.level']); return new StreamHandler($app['monolog.logfile'], $level); }; $app['monolog.level'] = function () { return Logger::DEBUG; }; $app['monolog.boot.before'] = $app->protect(function (Request $request) use($app) { $app['monolog']->addInfo('> ' . $request->getMethod() . ' ' . $request->getRequestUri()); }); $app['monolog.boot.error'] = $app->protect(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, array('exception' => $e)); } else { $app['monolog']->addCritical($message, array('exception' => $e)); } }); $app['monolog.boot.after'] = $app->protect(function (Request $request, Response $response) use($app) { if ($response instanceof RedirectResponse) { $app['monolog']->addInfo('< ' . $response->getStatusCode() . ' ' . $response->getTargetUrl()); } else { $app['monolog']->addInfo('< ' . $response->getStatusCode()); } }); $app['monolog.name'] = 'myapp'; }
public function register(Application $app) { $app['monolog.formatter'] = $app->share(function () { return new LineFormatter(null, 'Y-m-d H:i:s.u'); }); $app['monolog.handler'] = function () use($app) { if (!$app['monolog.logfile']) { return new NullHandler(); } if (method_exists('Silex\\Provider\\MonologServiceProvider', 'translateLevel')) { $level = MonologServiceProvider::translateLevel($app['monolog.level']); } else { $level = $app['monolog.level']; } $streamHandler = new StreamHandler($app['monolog.logfile'], $level); $streamHandler->setFormatter($app['monolog.formatter']); return $streamHandler; }; $app['logger'] = $app->share($app->extend('logger', function (Logger $logger, \Pimple $app) { $logger->pushProcessor($app['logger.request_processor']); $logger->pushProcessor(new PsrLogMessageProcessor()); if (!($app->offsetExists('monolog.logstashfile') && $app['monolog.logstashfile'])) { return $logger; } $logstashHandler = new StreamHandler($app['monolog.logstashfile'], $app['monolog.level']); $logstashHandler->setFormatter(new LogstashFormatter($app['monolog.name'])); $extras = array(); if ($app->offsetExists('meta.service')) { $extras['service'] = $app['meta.service']; } if ($app->offsetExists('meta.customer')) { $extras['customer'] = $app['meta.customer']; } if ($app->offsetExists('meta.environment')) { $extras['environment'] = $app['meta.environment']; } $logstashHandler->pushProcessor(new ExtraContextProcessor($extras)); $logger->pushHandler($logstashHandler); return $logger; })); $app['logger.request_processor'] = $app->share(function () use($app) { return new RequestProcessor($app); }); }
protected function getApplication() { $app = new Application(); $app->register(new MonologServiceProvider()); $app['monolog.handler'] = $app->share(function () use($app) { $level = MonologServiceProvider::translateLevel($app['monolog.level']); return new TestHandler($level); }); return $app; }
protected function getApplication() { $app = new Application(); $app->register(new MonologServiceProvider(), array('monolog.handler' => function () use($app) { $level = MonologServiceProvider::translateLevel($app['monolog.level']); return new TestHandler($level); }, 'monolog.logfile' => 'php://memory')); return $app; }
use Monolog\Formatter\LineFormatter; use Silex\Provider\MonologServiceProvider; date_default_timezone_set('UTC'); if (!defined('ROOT_PATH')) { define("ROOT_PATH", __DIR__ . "/.."); } if (!defined('APP_NAME')) { define('APP_NAME', 'DefaultServiceAppName'); } //Doctrine $app->register(new \Silex\Provider\DoctrineServiceProvider(), array('db.options' => array('driver' => getenv('API_DB_DRIVER'), 'dbname' => getenv('API_DB_NAME'), 'user' => getenv('API_DB_USER'), 'password' => getenv('API_DB_PWD'), 'memory' => getenv('API_DB_MEMORY'), 'charset' => 'utf8'))); //Redis //$app->register( // new Predis\Silex\ClientServiceProvider(), // [ // 'predis.parameters' => getenv('REDIS_HOST'), // ] //); //Monolog $app->register(new MonologServiceProvider(), ['monolog.handler' => function () use($app) { $level = MonologServiceProvider::translateLevel($app['monolog.level']); $handler = new \Monolog\Handler\SyslogUdpHandler(getenv('RSYSLOGD_HOST'), getenv('RSYSLOGD_PORT'), LOG_USER, $level, $app['monolog.bubble']); $formatter = new LineFormatter("[%datetime%] %level_name% " . gethostname() . " %channel% %message%\n"); $handler->setFormatter($formatter); return $handler; }, 'monolog.name' => APP_NAME]); // Monitoring - use $app['monitor'] (\League\StatsD\Client) to monitor custom metrics $app->register(new \League\StatsD\Silex\Provider\StatsdServiceProvider(), array('statsd.host' => getenv('API_MONITOR_HOST'), 'statsd.port' => getenv('API_MONITOR_PORT'), 'statsd.namespace' => getenv('API_MONITOR_NAMESPACE'))); $app['monitor'] = function () use($app) { return $app['statsd']; };
public function register(\Silex\Application $app) { parent::register($app); }