1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-08-04 12:17:35 +02:00
This commit is contained in:
Jordi Boggiano
2018-06-18 18:53:38 +02:00
parent fa9c4ebf3e
commit 41b8f5ebf4
29 changed files with 71 additions and 56 deletions

11
.php_cs
View File

@@ -24,14 +24,13 @@ return PhpCsFixer\Config::create()
'@PSR2' => true, '@PSR2' => true,
// some rules disabled as long as 1.x branch is maintained // some rules disabled as long as 1.x branch is maintained
'binary_operator_spaces' => array( 'binary_operator_spaces' => array(
'align_double_arrow' => null, 'default' => null,
'align_equals' => null,
), ),
'blank_line_before_return' => true, 'blank_line_before_statement' => ['statements' => ['continue', 'declare', 'return', 'throw', 'try']],
'cast_spaces' => true, 'cast_spaces' => ['space' => 'single'],
'header_comment' => array('header' => $header), 'header_comment' => ['header' => $header],
'include' => true, 'include' => true,
'method_separation' => true, 'class_attributes_separation' => ['elements' => ['method']],
'no_blank_lines_after_class_opening' => true, 'no_blank_lines_after_class_opening' => true,
'no_blank_lines_after_phpdoc' => true, 'no_blank_lines_after_phpdoc' => true,
'no_empty_statement' => true, 'no_empty_statement' => true,

View File

@@ -105,7 +105,7 @@ class ErrorHandler
} }
/** /**
* @param string|null $level a LogLevel::* constant, null to use the default LogLevel::ALERT or false to disable fatal error handling * @param string|null $level a LogLevel::* constant, null to use the default LogLevel::ALERT or false to disable fatal error handling
* @param int $reservedMemorySize Amount of KBs to reserve in memory so that it can be freed when handling fatal errors giving Monolog some room in memory to get its job done * @param int $reservedMemorySize Amount of KBs to reserve in memory so that it can be freed when handling fatal errors giving Monolog some room in memory to get its job done
*/ */
public function registerFatalHandler($level = null, int $reservedMemorySize = 20): self public function registerFatalHandler($level = null, int $reservedMemorySize = 20): self

View File

@@ -55,8 +55,8 @@ abstract class AbstractSyslogHandler extends AbstractProcessingHandler
/** /**
* @param mixed $facility * @param mixed $facility
* @param int $level The minimum logging level at which this handler will be triggered * @param int $level The minimum logging level at which this handler will be triggered
* @param bool $bubble Whether the messages that are handled can bubble up the stack or not * @param bool $bubble Whether the messages that are handled can bubble up the stack or not
*/ */
public function __construct($facility = LOG_USER, $level = Logger::DEBUG, $bubble = true) public function __construct($facility = LOG_USER, $level = Logger::DEBUG, $bubble = true)
{ {

View File

@@ -141,7 +141,8 @@ class BrowserConsoleHandler extends AbstractProcessingHandler
if (empty($context) && empty($extra)) { if (empty($context) && empty($extra)) {
$script[] = static::call_array('log', static::handleStyles($record['formatted'])); $script[] = static::call_array('log', static::handleStyles($record['formatted']));
} else { } else {
$script = array_merge($script, $script = array_merge(
$script,
[static::call_array('groupCollapsed', static::handleStyles($record['formatted']))], [static::call_array('groupCollapsed', static::handleStyles($record['formatted']))],
$context, $context,
$extra, $extra,

View File

@@ -24,7 +24,6 @@ use Monolog\Logger;
*/ */
class ChromePHPHandler extends AbstractProcessingHandler class ChromePHPHandler extends AbstractProcessingHandler
{ {
use WebRequestRecognizerTrait; use WebRequestRecognizerTrait;
/** /**

View File

@@ -46,7 +46,8 @@ class CubeHandler extends AbstractProcessingHandler
if (!in_array($urlInfo['scheme'], $this->acceptedSchemes)) { if (!in_array($urlInfo['scheme'], $this->acceptedSchemes)) {
throw new \UnexpectedValueException( throw new \UnexpectedValueException(
'Invalid protocol (' . $urlInfo['scheme'] . ').' 'Invalid protocol (' . $urlInfo['scheme'] . ').'
. ' Valid options are ' . implode(', ', $this->acceptedSchemes)); . ' Valid options are ' . implode(', ', $this->acceptedSchemes)
);
} }
$this->scheme = $urlInfo['scheme']; $this->scheme = $urlInfo['scheme'];

View File

@@ -81,6 +81,7 @@ class ElasticSearchHandler extends AbstractProcessingHandler
if ($formatter instanceof ElasticaFormatter) { if ($formatter instanceof ElasticaFormatter) {
return parent::setFormatter($formatter); return parent::setFormatter($formatter);
} }
throw new \InvalidArgumentException('ElasticSearchHandler is only compatible with ElasticaFormatter'); throw new \InvalidArgumentException('ElasticSearchHandler is only compatible with ElasticaFormatter');
} }

View File

@@ -40,6 +40,7 @@ class ErrorLogHandler extends AbstractProcessingHandler
if (false === in_array($messageType, self::getAvailableTypes(), true)) { if (false === in_array($messageType, self::getAvailableTypes(), true)) {
$message = sprintf('The given message type "%s" is not supported', print_r($messageType, true)); $message = sprintf('The given message type "%s" is not supported', print_r($messageType, true));
throw new \InvalidArgumentException($message); throw new \InvalidArgumentException($message);
} }
@@ -73,6 +74,7 @@ class ErrorLogHandler extends AbstractProcessingHandler
{ {
if (!$this->expandNewlines) { if (!$this->expandNewlines) {
error_log((string) $record['formatted'], $this->messageType); error_log((string) $record['formatted'], $this->messageType);
return; return;
} }

View File

@@ -21,7 +21,7 @@ interface ActivationStrategyInterface
/** /**
* Returns whether the given record activates the handler. * Returns whether the given record activates the handler.
* *
* @param array $record * @param array $record
* @return bool * @return bool
*/ */
public function isHandlerActivated(array $record); public function isHandlerActivated(array $record);

View File

@@ -21,7 +21,6 @@ use Monolog\Formatter\FormatterInterface;
*/ */
class FirePHPHandler extends AbstractProcessingHandler class FirePHPHandler extends AbstractProcessingHandler
{ {
use WebRequestRecognizerTrait; use WebRequestRecognizerTrait;
/** /**

View File

@@ -43,9 +43,9 @@ interface HandlerInterface
* Unless the bubbling is interrupted (by returning true), the Logger class will keep on * Unless the bubbling is interrupted (by returning true), the Logger class will keep on
* calling further handlers in the stack with a given log record. * calling further handlers in the stack with a given log record.
* *
* @param array $record The record to handle * @param array $record The record to handle
* @return bool true means that this handler handled the record, and that bubbling is not permitted. * @return bool true means that this handler handled the record, and that bubbling is not permitted.
* false means the record was either not processed or that this handler allows bubbling. * false means the record was either not processed or that this handler allows bubbling.
*/ */
public function handle(array $record): bool; public function handle(array $record): bool;

View File

@@ -9,11 +9,11 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Monolog\Handler; namespace Monolog\Handler;
use Monolog\Logger; use Monolog\Logger;
/** /**
* Inspired on LogEntriesHandler. * Inspired on LogEntriesHandler.
* *
* @author Robert Kaufmann III <rok3@rok3.me> * @author Robert Kaufmann III <rok3@rok3.me>

View File

@@ -59,9 +59,9 @@ class RollbarHandler extends AbstractProcessingHandler
protected $initialized = false; protected $initialized = false;
/** /**
* @param RollbarLogger $rollbarLogger RollbarLogger object constructed with valid token * @param RollbarLogger $rollbarLogger RollbarLogger object constructed with valid token
* @param int $level The minimum logging level at which this handler will be triggered * @param int $level The minimum logging level at which this handler will be triggered
* @param bool $bubble Whether the messages that are handled can bubble up the stack or not * @param bool $bubble Whether the messages that are handled can bubble up the stack or not
*/ */
public function __construct(RollbarLogger $rollbarLogger, $level = Logger::ERROR, $bubble = true) public function __construct(RollbarLogger $rollbarLogger, $level = Logger::ERROR, $bubble = true)
{ {

View File

@@ -90,7 +90,7 @@ class SlackWebhookHandler extends AbstractProcessingHandler
CURLOPT_POST => true, CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array('Content-type: application/json'), CURLOPT_HTTPHEADER => array('Content-type: application/json'),
CURLOPT_POSTFIELDS => $postString CURLOPT_POSTFIELDS => $postString,
); );
if (defined('CURLOPT_SAFE_UPLOAD')) { if (defined('CURLOPT_SAFE_UPLOAD')) {
$options[CURLOPT_SAFE_UPLOAD] = true; $options[CURLOPT_SAFE_UPLOAD] = true;

View File

@@ -21,7 +21,6 @@ use Monolog\Logger;
*/ */
class SqsHandler extends AbstractProcessingHandler class SqsHandler extends AbstractProcessingHandler
{ {
/** 256 KB in bytes - maximum message size in SQS */ /** 256 KB in bytes - maximum message size in SQS */
const MAX_MESSAGE_SIZE = 262144; const MAX_MESSAGE_SIZE = 262144;
/** 100 KB in bytes - head message size for new error log */ /** 100 KB in bytes - head message size for new error log */

View File

@@ -106,6 +106,7 @@ class StreamHandler extends AbstractProcessingHandler
restore_error_handler(); restore_error_handler();
if (!is_resource($this->stream)) { if (!is_resource($this->stream)) {
$this->stream = null; $this->stream = null;
throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened: '.$this->errorMessage, $this->url)); throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened: '.$this->errorMessage, $this->url));
} }
} }

View File

@@ -101,6 +101,7 @@ class TestHandler extends AbstractProcessingHandler
if (isset($record['context']) && $rec['context'] !== $record['context']) { if (isset($record['context']) && $rec['context'] !== $record['context']) {
return false; return false;
} }
return true; return true;
}, $level); }, $level);
} }

View File

@@ -1,10 +1,18 @@
<?php declare(strict_types=1); <?php declare(strict_types=1);
/*
* 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.
*/
namespace Monolog\Handler; namespace Monolog\Handler;
trait WebRequestRecognizerTrait trait WebRequestRecognizerTrait
{ {
/** /**
* Checks if PHP's serving a web request * Checks if PHP's serving a web request
* @return bool * @return bool

View File

@@ -276,10 +276,10 @@ class Logger implements LoggerInterface
/** /**
* Adds a log record. * Adds a log record.
* *
* @param int $level The logging level * @param int $level The logging level
* @param string $message The log message * @param string $message The log message
* @param array $context The log context * @param array $context The log context
* @return bool Whether the record has been processed * @return bool Whether the record has been processed
*/ */
public function addRecord(int $level, string $message, array $context = []): bool public function addRecord(int $level, string $message, array $context = []): bool
{ {

View File

@@ -11,8 +11,6 @@
namespace Monolog\Processor; namespace Monolog\Processor;
use Monolog\Logger;
/** /**
* Injects value of gethostname in all records * Injects value of gethostname in all records
*/ */

View File

@@ -65,11 +65,13 @@ class IntrospectionProcessor
foreach ($this->skipClassesPartials as $part) { foreach ($this->skipClassesPartials as $part) {
if (strpos($trace[$i]['class'], $part) !== false) { if (strpos($trace[$i]['class'], $part) !== false) {
$i++; $i++;
continue 2; continue 2;
} }
} }
} elseif (in_array($trace[$i]['function'], $this->skipFunctions)) { } elseif (in_array($trace[$i]['function'], $this->skipFunctions)) {
$i++; $i++;
continue; continue;
} }

View File

@@ -28,8 +28,8 @@ class PsrLogMessageProcessor
private $removeUsedContextFields; private $removeUsedContextFields;
/** /**
* @param string $dateFormat The format of the timestamp: one supported by DateTime::format * @param string $dateFormat The format of the timestamp: one supported by DateTime::format
* @param bool $removeUsedContextFields If set to true the fields interpolated into message gets unset * @param bool $removeUsedContextFields If set to true the fields interpolated into message gets unset
*/ */
public function __construct(string $dateFormat = null, bool $removeUsedContextFields = false) public function __construct(string $dateFormat = null, bool $removeUsedContextFields = false)
{ {

View File

@@ -234,7 +234,7 @@ class GelfMessageFormatterTest extends \PHPUnit\Framework\TestCase
'context' => array('exception' => str_repeat(' ', 32767 * 2)), 'context' => array('exception' => str_repeat(' ', 32767 * 2)),
'datetime' => new \DateTime("@0"), 'datetime' => new \DateTime("@0"),
'extra' => array('key' => str_repeat(' ', 32767 * 2)), 'extra' => array('key' => str_repeat(' ', 32767 * 2)),
'message' => 'log' 'message' => 'log',
); );
$message = $formatter->format($record); $message = $formatter->format($record);
$messageArray = $message->toArray(); $messageArray = $message->toArray();

View File

@@ -183,6 +183,7 @@ class ElasticSearchHandlerTest extends TestCase
$client = new Client(); $client = new Client();
$handler = new ElasticSearchHandler($client, $this->options); $handler = new ElasticSearchHandler($client, $this->options);
try { try {
$handler->handleBatch([$msg]); $handler->handleBatch([$msg]);
} catch (\RuntimeException $e) { } catch (\RuntimeException $e) {

View File

@@ -146,7 +146,10 @@ class FilterHandlerTest extends TestCase
$handler = new FilterHandler( $handler = new FilterHandler(
function ($record, $handler) use ($test) { function ($record, $handler) use ($test) {
return $test; return $test;
}, Logger::INFO, Logger::NOTICE, false },
Logger::INFO,
Logger::NOTICE,
false
); );
$handler->handle($this->getRecord(Logger::DEBUG)); $handler->handle($this->getRecord(Logger::DEBUG));
$handler->handle($this->getRecord(Logger::INFO)); $handler->handle($this->getRecord(Logger::INFO));

View File

@@ -1,4 +1,4 @@
<?php <?php declare(strict_types=1);
/* /*
* This file is part of the Monolog package. * This file is part of the Monolog package.
@@ -9,12 +9,12 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Monolog\Handler; namespace Monolog\Handler;
use Monolog\Test\TestCase; use Monolog\Test\TestCase;
use Monolog\Logger; use Monolog\Logger;
/** /**
* @author Robert Kaufmann III <rok3@rok3.me> * @author Robert Kaufmann III <rok3@rok3.me>
* @author Gabriel Machado <gabriel.ms1@hotmail.com> * @author Gabriel Machado <gabriel.ms1@hotmail.com>
*/ */
@@ -62,7 +62,6 @@ class InsightOpsHandlerTest extends TestCase
->setConstructorArgs($args) ->setConstructorArgs($args)
->getMock(); ->getMock();
$reflectionProperty = new \ReflectionProperty('\Monolog\Handler\SocketHandler', 'connectionString'); $reflectionProperty = new \ReflectionProperty('\Monolog\Handler\SocketHandler', 'connectionString');
$reflectionProperty->setAccessible(true); $reflectionProperty->setAccessible(true);
$reflectionProperty->setValue($this->handler, 'localhost:1234'); $reflectionProperty->setValue($this->handler, 'localhost:1234');

View File

@@ -59,7 +59,7 @@ class RollbarHandlerTest extends TestCase
{ {
$config = array( $config = array(
'access_token' => 'ad865e76e7fb496fab096ac07b1dbabb', 'access_token' => 'ad865e76e7fb496fab096ac07b1dbabb',
'environment' => 'test' 'environment' => 'test',
); );
$this->rollbarLogger = $this->getMockBuilder(RollbarLogger::class) $this->rollbarLogger = $this->getMockBuilder(RollbarLogger::class)

View File

@@ -102,10 +102,10 @@ class RotatingFileHandlerTest extends TestCase
$dayCallback = function ($ago) use ($now) { $dayCallback = function ($ago) use ($now) {
return $now + 86400 * $ago; return $now + 86400 * $ago;
}; };
$monthCallback = function($ago) { $monthCallback = function ($ago) {
return gmmktime(0, 0, 0, (int) (date('n') + $ago), 1, (int) date('Y')); return gmmktime(0, 0, 0, (int) (date('n') + $ago), 1, (int) date('Y'));
}; };
$yearCallback = function($ago) { $yearCallback = function ($ago) {
return gmmktime(0, 0, 0, 1, 1, (int) (date('Y') + $ago)); return gmmktime(0, 0, 0, 1, 1, (int) (date('Y') + $ago));
}; };
@@ -216,7 +216,6 @@ class RotatingFileHandlerTest extends TestCase
public function rotationWhenSimilarFilesExistTests() public function rotationWhenSimilarFilesExistTests()
{ {
return array( return array(
'Rotation is triggered when the file of the current day is not present but similar exists' 'Rotation is triggered when the file of the current day is not present but similar exists'
=> array(RotatingFileHandler::FILE_PER_DAY), => array(RotatingFileHandler::FILE_PER_DAY),

View File

@@ -54,7 +54,8 @@ class TestHandlerTest extends TestCase
$this->assertEquals([$record], $records); $this->assertEquals([$record], $records);
} }
public function testHandlerAssertEmptyContext() { public function testHandlerAssertEmptyContext()
{
$handler = new TestHandler; $handler = new TestHandler;
$record = $this->getRecord(Logger::WARNING, 'test', []); $record = $this->getRecord(Logger::WARNING, 'test', []);
$this->assertFalse($handler->hasWarning([ $this->assertFalse($handler->hasWarning([
@@ -71,18 +72,19 @@ class TestHandlerTest extends TestCase
$this->assertFalse($handler->hasWarning([ $this->assertFalse($handler->hasWarning([
'message' => 'test', 'message' => 'test',
'context' => [ 'context' => [
'foo' => 'bar' 'foo' => 'bar',
], ],
])); ]));
} }
public function testHandlerAssertNonEmptyContext() { public function testHandlerAssertNonEmptyContext()
{
$handler = new TestHandler; $handler = new TestHandler;
$record = $this->getRecord(Logger::WARNING, 'test', ['foo' => 'bar']); $record = $this->getRecord(Logger::WARNING, 'test', ['foo' => 'bar']);
$this->assertFalse($handler->hasWarning([ $this->assertFalse($handler->hasWarning([
'message' => 'test', 'message' => 'test',
'context' => [ 'context' => [
'foo' => 'bar' 'foo' => 'bar',
], ],
])); ]));
@@ -91,7 +93,7 @@ class TestHandlerTest extends TestCase
$this->assertTrue($handler->hasWarning([ $this->assertTrue($handler->hasWarning([
'message' => 'test', 'message' => 'test',
'context' => [ 'context' => [
'foo' => 'bar' 'foo' => 'bar',
], ],
])); ]));
$this->assertFalse($handler->hasWarning([ $this->assertFalse($handler->hasWarning([