Remove MWLoggerMonologSamplingHandler
authorBryan Davis <bd808@wikimedia.org>
Sun, 22 Mar 2015 22:54:06 +0000 (16:54 -0600)
committerOri.livneh <ori@wikimedia.org>
Fri, 27 Mar 2015 20:27:32 +0000 (20:27 +0000)
The Monolog\Handler\SamlingHandler class available since Monolog v1.12.0
is an upstreamed equivalent of MWLoggerMonologSamplingHandler.

Requires: I8790da95fd658234e35b2d846af35993ebcd80e9
Change-Id: I3841cbab95382a66098d90f5570fa0bf3521578a

autoload.php
includes/debug/logger/monolog/SamplingHandler.php [deleted file]

index faa929c..dcd7879 100644 (file)
@@ -705,7 +705,6 @@ $wgAutoloadLocalClasses = array(
        'MWLoggerMonologHandler' => __DIR__ . '/includes/debug/logger/monolog/Handler.php',
        'MWLoggerMonologLegacyFormatter' => __DIR__ . '/includes/debug/logger/monolog/LegacyFormatter.php',
        'MWLoggerMonologProcessor' => __DIR__ . '/includes/debug/logger/monolog/Processor.php',
-       'MWLoggerMonologSamplingHandler' => __DIR__ . '/includes/debug/logger/monolog/SamplingHandler.php',
        'MWLoggerMonologSpi' => __DIR__ . '/includes/debug/logger/monolog/Spi.php',
        'MWLoggerMonologSyslogHandler' => __DIR__ . '/includes/debug/logger/monolog/SyslogHandler.php',
        'MWLoggerNullSpi' => __DIR__ . '/includes/debug/logger/NullSpi.php',
diff --git a/includes/debug/logger/monolog/SamplingHandler.php b/includes/debug/logger/monolog/SamplingHandler.php
deleted file mode 100644 (file)
index a9f83b0..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- */
-
-use Monolog\Handler\HandlerInterface;
-use Monolog\Formatter\FormatterInterface;
-
-/**
- * Wrapper for another HandlerInterface that will only handle a percentage of
- * records offered to it.
- *
- * When HandlerInterface::handle() is called for a given record, it will be
- * handled or ignored with a one in N chance based on the sample factor given
- * for the handler.
- *
- * Usage with MWLoggerMonologSpi:
- * @code
- * $wgMWLoggerDefaultSpi = array(
- *   'class' => 'MWLoggerMonologSpi',
- *   'args' => array( array(
- *     'handlers' => array(
- *       'some-handler' => array( ... ),
- *       'sampled-some-handler' => array(
- *         'class' => 'MWLoggerMonologSamplingHandler',
- *         'args' => array(
- *           function() {
- *             return MWLoggerFactory::getProvider()->getHandler( 'some-handler');
- *           },
- *           2, // emit logs with a 1:2 chance
- *         ),
- *       ),
- *     ),
- *   ) ),
- * );
- * @endcode
- *
- * A sampled event stream can be useful for logging high frequency events in
- * a production environment where you only need an idea of what is happening
- * and are not concerned with capturing every occurence. Since the decision to
- * handle or not handle a particular event is determined randomly, the
- * resulting sampled log is not guaranteed to contain 1/N of the events that
- * occurred in the application but based on [[Law of large numbers]] it will
- * tend to be close to this ratio with a large number of attempts.
- *
- * @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
- */
-class MWLoggerMonologSamplingHandler implements HandlerInterface {
-
-       /**
-        * @var HandlerInterface $delegate
-        */
-       protected $delegate;
-
-       /**
-        * @var int $factor
-        */
-       protected $factor;
-
-       /**
-        * @param HandlerInterface $handler Wrapped handler
-        * @param int $factor Sample factor
-        */
-       public function __construct( HandlerInterface $handler, $factor ) {
-               $this->delegate = $handler;
-               $this->factor = $factor;
-       }
-
-       public function isHandling( array $record ) {
-               return $this->delegate->isHandling( $record );
-       }
-
-       public function handle( array $record ) {
-               if ( $this->isHandling( $record )
-                       && mt_rand( 1, $this->factor ) === 1
-               ) {
-                       return $this->delegate->handle( $record );
-               }
-               return false;
-       }
-
-       public function handleBatch( array $records ) {
-               foreach ( $records as $record ) {
-                       $this->handle( $record );
-               }
-       }
-
-       public function pushProcessor( $callback ) {
-               $this->delegate->pushProcessor( $callback );
-               return $this;
-       }
-
-       public function popProcessor() {
-               return $this->delegate->popProcessor();
-       }
-
-       public function setFormatter( FormatterInterface $formatter ) {
-               $this->delegate->setFormatter( $formatter );
-               return $this;
-       }
-
-       public function getFormatter() {
-               return $this->delegate->getFormatter();
-       }
-
-}