/vendor/psr/log/LICENSE |
@@ -0,0 +1,19 @@ |
Copyright (c) 2012 PHP Framework Interoperability Group |
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
of this software and associated documentation files (the "Software"), to deal |
in the Software without restriction, including without limitation the rights |
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
copies of the Software, and to permit persons to whom the Software is |
furnished to do so, subject to the following conditions: |
|
The above copyright notice and this permission notice shall be included in |
all copies or substantial portions of the Software. |
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
THE SOFTWARE. |
/vendor/psr/log/Psr/Log/AbstractLogger.php |
@@ -0,0 +1,128 @@ |
<?php |
|
namespace Psr\Log; |
|
/** |
* This is a simple Logger implementation that other Loggers can inherit from. |
* |
* It simply delegates all log-level-specific methods to the `log` method to |
* reduce boilerplate code that a simple Logger that does the same thing with |
* messages regardless of the error level has to implement. |
*/ |
abstract class AbstractLogger implements LoggerInterface |
{ |
/** |
* System is unusable. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function emergency($message, array $context = array()) |
{ |
$this->log(LogLevel::EMERGENCY, $message, $context); |
} |
|
/** |
* Action must be taken immediately. |
* |
* Example: Entire website down, database unavailable, etc. This should |
* trigger the SMS alerts and wake you up. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function alert($message, array $context = array()) |
{ |
$this->log(LogLevel::ALERT, $message, $context); |
} |
|
/** |
* Critical conditions. |
* |
* Example: Application component unavailable, unexpected exception. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function critical($message, array $context = array()) |
{ |
$this->log(LogLevel::CRITICAL, $message, $context); |
} |
|
/** |
* Runtime errors that do not require immediate action but should typically |
* be logged and monitored. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function error($message, array $context = array()) |
{ |
$this->log(LogLevel::ERROR, $message, $context); |
} |
|
/** |
* Exceptional occurrences that are not errors. |
* |
* Example: Use of deprecated APIs, poor use of an API, undesirable things |
* that are not necessarily wrong. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function warning($message, array $context = array()) |
{ |
$this->log(LogLevel::WARNING, $message, $context); |
} |
|
/** |
* Normal but significant events. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function notice($message, array $context = array()) |
{ |
$this->log(LogLevel::NOTICE, $message, $context); |
} |
|
/** |
* Interesting events. |
* |
* Example: User logs in, SQL logs. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function info($message, array $context = array()) |
{ |
$this->log(LogLevel::INFO, $message, $context); |
} |
|
/** |
* Detailed debug information. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function debug($message, array $context = array()) |
{ |
$this->log(LogLevel::DEBUG, $message, $context); |
} |
} |
/vendor/psr/log/Psr/Log/LoggerInterface.php |
@@ -0,0 +1,123 @@ |
<?php |
|
namespace Psr\Log; |
|
/** |
* Describes a logger instance. |
* |
* The message MUST be a string or object implementing __toString(). |
* |
* The message MAY contain placeholders in the form: {foo} where foo |
* will be replaced by the context data in key "foo". |
* |
* The context array can contain arbitrary data. The only assumption that |
* can be made by implementors is that if an Exception instance is given |
* to produce a stack trace, it MUST be in a key named "exception". |
* |
* See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md |
* for the full interface specification. |
*/ |
interface LoggerInterface |
{ |
/** |
* System is unusable. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function emergency($message, array $context = array()); |
|
/** |
* Action must be taken immediately. |
* |
* Example: Entire website down, database unavailable, etc. This should |
* trigger the SMS alerts and wake you up. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function alert($message, array $context = array()); |
|
/** |
* Critical conditions. |
* |
* Example: Application component unavailable, unexpected exception. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function critical($message, array $context = array()); |
|
/** |
* Runtime errors that do not require immediate action but should typically |
* be logged and monitored. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function error($message, array $context = array()); |
|
/** |
* Exceptional occurrences that are not errors. |
* |
* Example: Use of deprecated APIs, poor use of an API, undesirable things |
* that are not necessarily wrong. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function warning($message, array $context = array()); |
|
/** |
* Normal but significant events. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function notice($message, array $context = array()); |
|
/** |
* Interesting events. |
* |
* Example: User logs in, SQL logs. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function info($message, array $context = array()); |
|
/** |
* Detailed debug information. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function debug($message, array $context = array()); |
|
/** |
* Logs with an arbitrary level. |
* |
* @param mixed $level |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function log($level, $message, array $context = array()); |
} |
/vendor/psr/log/Psr/Log/LoggerTrait.php |
@@ -0,0 +1,140 @@ |
<?php |
|
namespace Psr\Log; |
|
/** |
* This is a simple Logger trait that classes unable to extend AbstractLogger |
* (because they extend another class, etc) can include. |
* |
* It simply delegates all log-level-specific methods to the `log` method to |
* reduce boilerplate code that a simple Logger that does the same thing with |
* messages regardless of the error level has to implement. |
*/ |
trait LoggerTrait |
{ |
/** |
* System is unusable. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function emergency($message, array $context = array()) |
{ |
$this->log(LogLevel::EMERGENCY, $message, $context); |
} |
|
/** |
* Action must be taken immediately. |
* |
* Example: Entire website down, database unavailable, etc. This should |
* trigger the SMS alerts and wake you up. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function alert($message, array $context = array()) |
{ |
$this->log(LogLevel::ALERT, $message, $context); |
} |
|
/** |
* Critical conditions. |
* |
* Example: Application component unavailable, unexpected exception. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function critical($message, array $context = array()) |
{ |
$this->log(LogLevel::CRITICAL, $message, $context); |
} |
|
/** |
* Runtime errors that do not require immediate action but should typically |
* be logged and monitored. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function error($message, array $context = array()) |
{ |
$this->log(LogLevel::ERROR, $message, $context); |
} |
|
/** |
* Exceptional occurrences that are not errors. |
* |
* Example: Use of deprecated APIs, poor use of an API, undesirable things |
* that are not necessarily wrong. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function warning($message, array $context = array()) |
{ |
$this->log(LogLevel::WARNING, $message, $context); |
} |
|
/** |
* Normal but significant events. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function notice($message, array $context = array()) |
{ |
$this->log(LogLevel::NOTICE, $message, $context); |
} |
|
/** |
* Interesting events. |
* |
* Example: User logs in, SQL logs. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function info($message, array $context = array()) |
{ |
$this->log(LogLevel::INFO, $message, $context); |
} |
|
/** |
* Detailed debug information. |
* |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
public function debug($message, array $context = array()) |
{ |
$this->log(LogLevel::DEBUG, $message, $context); |
} |
|
/** |
* Logs with an arbitrary level. |
* |
* @param mixed $level |
* @param string $message |
* @param array $context |
* |
* @return void |
*/ |
abstract public function log($level, $message, array $context = array()); |
} |
/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php |
@@ -0,0 +1,140 @@ |
<?php |
|
namespace Psr\Log\Test; |
|
use Psr\Log\LoggerInterface; |
use Psr\Log\LogLevel; |
|
/** |
* Provides a base test class for ensuring compliance with the LoggerInterface. |
* |
* Implementors can extend the class and implement abstract methods to run this |
* as part of their test suite. |
*/ |
abstract class LoggerInterfaceTest extends \PHPUnit_Framework_TestCase |
{ |
/** |
* @return LoggerInterface |
*/ |
abstract public function getLogger(); |
|
/** |
* This must return the log messages in order. |
* |
* The simple formatting of the messages is: "<LOG LEVEL> <MESSAGE>". |
* |
* Example ->error('Foo') would yield "error Foo". |
* |
* @return string[] |
*/ |
abstract public function getLogs(); |
|
public function testImplements() |
{ |
$this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger()); |
} |
|
/** |
* @dataProvider provideLevelsAndMessages |
*/ |
public function testLogsAtAllLevels($level, $message) |
{ |
$logger = $this->getLogger(); |
$logger->{$level}($message, array('user' => 'Bob')); |
$logger->log($level, $message, array('user' => 'Bob')); |
|
$expected = array( |
$level.' message of level '.$level.' with context: Bob', |
$level.' message of level '.$level.' with context: Bob', |
); |
$this->assertEquals($expected, $this->getLogs()); |
} |
|
public function provideLevelsAndMessages() |
{ |
return array( |
LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'), |
LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'), |
LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'), |
LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'), |
LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'), |
LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'), |
LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'), |
LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'), |
); |
} |
|
/** |
* @expectedException \Psr\Log\InvalidArgumentException |
*/ |
public function testThrowsOnInvalidLevel() |
{ |
$logger = $this->getLogger(); |
$logger->log('invalid level', 'Foo'); |
} |
|
public function testContextReplacement() |
{ |
$logger = $this->getLogger(); |
$logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar')); |
|
$expected = array('info {Message {nothing} Bob Bar a}'); |
$this->assertEquals($expected, $this->getLogs()); |
} |
|
public function testObjectCastToString() |
{ |
if (method_exists($this, 'createPartialMock')) { |
$dummy = $this->createPartialMock('Psr\Log\Test\DummyTest', array('__toString')); |
} else { |
$dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString')); |
} |
$dummy->expects($this->once()) |
->method('__toString') |
->will($this->returnValue('DUMMY')); |
|
$this->getLogger()->warning($dummy); |
|
$expected = array('warning DUMMY'); |
$this->assertEquals($expected, $this->getLogs()); |
} |
|
public function testContextCanContainAnything() |
{ |
$context = array( |
'bool' => true, |
'null' => null, |
'string' => 'Foo', |
'int' => 0, |
'float' => 0.5, |
'nested' => array('with object' => new DummyTest), |
'object' => new \DateTime, |
'resource' => fopen('php://memory', 'r'), |
); |
|
$this->getLogger()->warning('Crazy context data', $context); |
|
$expected = array('warning Crazy context data'); |
$this->assertEquals($expected, $this->getLogs()); |
} |
|
public function testContextExceptionKeyCanBeExceptionOrOtherValues() |
{ |
$logger = $this->getLogger(); |
$logger->warning('Random message', array('exception' => 'oops')); |
$logger->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail'))); |
|
$expected = array( |
'warning Random message', |
'critical Uncaught Exception!' |
); |
$this->assertEquals($expected, $this->getLogs()); |
} |
} |
|
class DummyTest |
{ |
public function __toString() |
{ |
} |
} |