コード例 #1
0
ファイル: Logging.php プロジェクト: venta/framework
 /**
  * @inheritDoc
  */
 public function boot()
 {
     // todo: implement multi-channel configuration.
     $this->container->bindFactory(LoggerInterface::class, function (Config $config) {
         $handler = new StreamHandler($this->kernel->getRootPath() . '/storage/logs/venta.log', $config->log_level ?? Logger::DEBUG);
         $handler->pushProcessor(new PsrLogMessageProcessor());
         if (!$this->kernel->isCli()) {
             $handler->pushProcessor(new WebProcessor(null, ['url' => 'REQUEST_URI', 'ip' => 'REMOTE_ADDR', 'http_method' => 'REQUEST_METHOD', 'server' => 'SERVER_NAME', 'referrer' => 'HTTP_REFERER', 'user_agent' => 'HTTP_USER_AGENT']));
         }
         $logger = new Logger('venta');
         $logger->pushHandler($handler);
         return $logger;
     }, true);
 }
コード例 #2
0
ファイル: SetUpLogs.php プロジェクト: limoncello-php/app
 /**
  * @param Container $container
  *
  * @return void
  *
  * @SuppressWarnings(PHPMD.ElseExpression)
  */
 protected static function setUpFileLogs(Container $container)
 {
     $container[LoggerInterface::class] = function (Container $container) {
         $appConfig = $container->get(ConfigInterface::class)->getConfig(C::class);
         $monolog = new Logger($appConfig[C::KEY_NAME]);
         if ($appConfig[C::KEY_IS_LOG_ENABLED] === true) {
             $handler = new StreamHandler($appConfig[C::KEY_LOG_PATH], $appConfig[C::KEY_LOG_LEVEL]);
             $handler->setFormatter(new LineFormatter(null, null, true, true));
             $handler->pushProcessor(new WebProcessor());
             $handler->pushProcessor(new UidProcessor());
         } else {
             $handler = new NullHandler();
         }
         $monolog->pushHandler($handler);
         return $monolog;
     };
 }
コード例 #3
0
ファイル: Loggable.php プロジェクト: gavincsch/jsonlogger
 /**
  * @param $logFolder
  *
  * @return StreamHandler[]
  */
 protected function getStreamHandlers($logFolder)
 {
     // create Monolog file stream
     $stream = new StreamHandler($logFolder . DIRECTORY_SEPARATOR . $this->getLogfileName());
     $stream->pushProcessor(array($this, 'streamProcessor'));
     $stream->setFormatter(new JSONFormatter());
     return [$stream];
 }
コード例 #4
0
ファイル: Log.php プロジェクト: giovdk21/deployii
 /**
  * Initialise the logger
  *
  * By default a log is saved to file into the @home/log folder and
  * the log messages are stored by DeploYiiLogHandler to be used later.
  */
 private static function _initLogger()
 {
     $logDir = Shell::getHomeDir() . DIRECTORY_SEPARATOR . 'log';
     self::$logFile = $logDir . DIRECTORY_SEPARATOR . date('Ymd_His') . uniqid() . '.log';
     if (!is_dir($logDir)) {
         FileHelper::createDirectory($logDir);
     }
     self::$_logger = new Logger('main');
     $streamHandler = new StreamHandler(self::$logFile, Logger::DEBUG);
     /** @noinspection PhpParamsInspection */
     $streamHandler->pushProcessor(new PsrLogMessageProcessor());
     self::$deployiiHandler = new DeploYiiLogHandler();
     /** @noinspection PhpParamsInspection */
     self::$deployiiHandler->pushProcessor(new PsrLogMessageProcessor());
     self::$_logger->pushHandler($streamHandler);
     self::$_logger->pushHandler(self::$deployiiHandler);
 }
コード例 #5
0
 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);
     });
 }
コード例 #6
0
ファイル: Log.php プロジェクト: wave-framework/wave
 public static function getDefaultHandlers()
 {
     if (static::$default_handlers === null) {
         static::$default_handlers = array();
         $log_path = Config::get('wave')->path->logs;
         $log_path .= Config::get('wave')->logger->file->file;
         $log_dir = dirname($log_path);
         if (!is_writable($log_dir)) {
             @mkdir($log_dir, 0770, true);
         }
         $stream_handler = new StreamHandler($log_path, static::getDefaultLevel());
         $stream_handler->pushProcessor(new ExceptionIntrospectionProcessor());
         static::pushDefaultHandler($stream_handler);
         if (PHP_SAPI === 'cli') {
             $cli_handler = new CliHandler(Config::get('wave')->logger->cli->level);
             $cli_handler->setFormatter(new LineFormatter(CliHandler::LINE_FORMAT));
             static::pushDefaultHandler($cli_handler);
         }
     }
     return static::$default_handlers;
 }
コード例 #7
0
 public function pushProcessor($callback)
 {
     return $this->streamHandler->pushProcessor($callback);
 }