getLevelName() public static method

Gets the name of the logging level.
public static getLevelName ( integer $level ) : string
$level integer
return string
 /**
  * @covers ::getDefaultFormatter
  */
 public function testHandlerUsesLineFormatterWhichIgnoresEmptyArrays()
 {
     $record = array('message' => 'msg', 'context' => array(), 'level' => Logger::DEBUG, 'level_name' => Logger::getLevelName(Logger::DEBUG), 'channel' => 'channel', 'datetime' => new \DateTime(), 'extra' => array());
     $expectedFormatter = new LineFormatter(null, null, true, true);
     $expected = $expectedFormatter->format($record);
     $handlerFormatter = $this->handler->getFormatter();
     $actual = $handlerFormatter->format($record);
     $this->assertEquals($expected, $actual, 'Empty context and extra arrays should not be rendered');
 }
 /**
  * {@inheritDoc}
  */
 protected function write(array $record)
 {
     $data = $record['context'];
     $data['level'] = Logger::getLevelName($record['level']);
     $data['message'] = $record['message'];
     $this->logger->post($record['channel'], $data);
 }
 public function testWrite()
 {
     $data = $this->record;
     $data['level'] = Logger::getLevelName($data['level']);
     $tag = $data['channel'] . '.' . $data['message'];
     $loggerMock = $this->getMockBuilder('Fluent\\Logger\\FluentLogger')->disableOriginalConstructor()->getMock();
     $loggerMock->expects($this->once())->method('post')->with('debug.monolog.fluent', $data);
     $handler = new FluentHandler($loggerMock);
     $handler->write($this->record);
 }
Beispiel #4
0
 public function testWritingAndFormatting()
 {
     $output = $this->getMock('Symfony\\Component\\Console\\Output\\OutputInterface');
     $output->expects($this->any())->method('getVerbosity')->will($this->returnValue(OutputInterface::VERBOSITY_DEBUG));
     $output->expects($this->once())->method('write')->with('<info>[2013-05-29 16:21:54] app.INFO:</info> My info message  ' . "\n");
     $handler = new ConsoleHandler(null, false);
     $handler->setOutput($output);
     $infoRecord = array('message' => 'My info message', 'context' => array(), 'level' => Logger::INFO, 'level_name' => Logger::getLevelName(Logger::INFO), 'channel' => 'app', 'datetime' => new \DateTime('2013-05-29 16:21:54'), 'extra' => array());
     $this->assertTrue($handler->handle($infoRecord), 'The handler finished handling the log as bubble is false.');
 }
 public function testWrite()
 {
     $fluentLogger = $this->getMock('Fluent\\Logger\\FluentLogger', array(), array(), '', false);
     $record = $this->getRecord();
     $expectedContext = $record['context'];
     $expectedContext['level'] = Logger::getLevelName($record['level']);
     $expectedContext['message'] = $record['message'];
     $fluentLogger->expects($this->once())->method('post')->with($record['channel'], $expectedContext);
     $handler = new FluentdHandler($fluentLogger);
     $handler->handle($record);
 }
 /**
  * @return array Record
  */
 protected function getRecord($level = Logger::WARNING, $message = 'test')
 {
     return array(
         'message' => $message,
         'context' => array(),
         'level' => $level,
         'level_name' => Logger::getLevelName($level),
         'channel' => 'test',
         'datetime' => new \DateTime(),
         'extra' => array(),
     );
 }
 /**
  * {@inheritdoc}
  */
 protected function write(array $record)
 {
     if (isset($record['context']) && isset($record['context']['tag'])) {
         $tag = $record['context']['tag'];
     } else {
         $tag = $this->tag;
     }
     $tag = $tag . '.' . $this->env;
     $data = $record;
     $data['level'] = Logger::getLevelName($record['level']);
     $this->logger->post($tag, $data);
 }
 /**
  * Save records into database in batch
  *
  * @param array $records
  *
  * @throws \Exception
  */
 protected function save(array $records)
 {
     if ($this->hasError === true) {
         $this->fallback->handleBatch($records);
         return;
     }
     $data = [];
     foreach ($records as $record) {
         // ['message', 'context', 'level', 'channel', 'created_at', 'extra'] <= Single row format
         $data[] = [Log::FIELD_MESSAGE => $record['message'], Log::FIELD_CONTEXT => serialize((array) $record['context']), Log::FIELD_LEVEL => Logger::getLevelName($record['level']), Log::FIELD_CHANNEL => $record['channel'], Log::FIELD_CREATED_AT => $record['datetime'] instanceof \DateTime ? Carbon::instance($record['datetime']) : Carbon::now(), Log::FIELD_EXTRA => serialize((array) $record['extra'])];
     }
     try {
         $this->container->make('db')->connection()->table((new Log())->getTable())->insert($data);
     } catch (\Exception $ex) {
         $this->hasError = true;
         $this->fallback->handleBatch($records);
         throw $ex;
     }
 }
 public function testProvidingNullLineFormatToGetMonologDefault()
 {
     $logfileName = 'nullFormatterTest.log';
     $this->cleanUpLogFile($logfileName);
     $command = $this->registerCommand(new LoggingCommand());
     EncapsulationViolator::invokeMethod($command, 'setLogFilename', array($logfileName));
     EncapsulationViolator::invokeMethod($command, 'setConsoleLogLineFormat', array(null));
     EncapsulationViolator::invokeMethod($command, 'setFileLogLineFormat', array(null));
     $commandTester = $this->executeCommand($command);
     // Generate what the default format looks like
     $lineFormatter = new \Monolog\Formatter\LineFormatter(null);
     $record = array('message' => 'The quick brown fox jumps over the lazy dog', 'context' => array(), 'level' => Logger::EMERGENCY, 'level_name' => Logger::getLevelName(Logger::EMERGENCY), 'channel' => $command->getLogger()->getName(), 'datetime' => new \DateTime('1970-01-01 00:00:00'), 'extra' => array());
     $exampleLine = $lineFormatter->format($record);
     $exampleLine = trim(str_replace('[1970-01-01 00:00:00]', '', $exampleLine));
     // strip out date as this wont match
     // Test  console format
     $this->assertRegExp('/' . $exampleLine . '/', $commandTester->getDisplay(), 'Console log line format does not seem to match the Monolog default');
     // Test default logfile format
     $this->assertRegExp('/' . $exampleLine . '/', $this->getLogfileContents($logfileName), 'File log line format does not seem to match the Monolog default');
     $this->cleanUpLogFile($logfileName);
 }
Beispiel #10
0
 /**
  * Converts a given log level string to a log level integer.
  *
  * @param string $logLevelStr Values could be DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY
  * @return int
  * @throws \Exception
  */
 public static function parseLogLevel($logLevelStr)
 {
     if (is_numeric($logLevelStr)) {
         return (int) $logLevelStr;
     } else {
         switch (strtoupper($logLevelStr)) {
             case Logger::getLevelName(Logger::DEBUG):
                 $logLevel = Logger::DEBUG;
                 break;
             case Logger::getLevelName(Logger::INFO):
                 $logLevel = Logger::INFO;
                 break;
             case Logger::getLevelName(Logger::NOTICE):
                 $logLevel = Logger::NOTICE;
                 break;
             case Logger::getLevelName(Logger::WARNING):
                 $logLevel = Logger::WARNING;
                 break;
             case Logger::getLevelName(Logger::ERROR):
                 $logLevel = Logger::ERROR;
                 break;
             case Logger::getLevelName(Logger::CRITICAL):
                 $logLevel = Logger::CRITICAL;
                 break;
             case Logger::getLevelName(Logger::ALERT):
                 $logLevel = Logger::ALERT;
                 break;
             case Logger::getLevelName(Logger::EMERGENCY):
                 $logLevel = Logger::EMERGENCY;
                 break;
             default:
                 throw new \Exception("Log level '{$logLevelStr}' is not supported!'");
         }
         return $logLevel;
     }
 }
 /**
  * @return array Record
  */
 protected function getRecord($level = Logger::WARNING, $message = 'test', $context = array())
 {
     return array('message' => $message, 'context' => $context, 'level' => $level, 'level_name' => Logger::getLevelName($level), 'channel' => 'test', 'datetime' => \DateTime::createFromFormat('U.u', sprintf('%.6F', microtime(true))), 'extra' => array());
 }
Beispiel #12
0
 /**
  * Convert a Monolog log level to textual equivalent.
  *
  * @param integer $level
  *
  * @return string
  */
 public function logLevel($level)
 {
     if (!is_numeric($level)) {
         return $level;
     }
     try {
         return ucfirst(strtolower(\Monolog\Logger::getLevelName($level)));
     } catch (\Exception $e) {
         return $level;
     }
 }
 protected function getRecord($level = Logger::WARNING)
 {
     return array('level' => $level, 'level_name' => Logger::getLevelName($level), 'channel' => 'log', 'Record' => 'foo', 'datetime' => new \DateTime(), 'extra' => array());
 }
Beispiel #14
0
 public static function getLevelName($level)
 {
     return Logger::getLevelName($level);
 }
Beispiel #15
0
 /**
  * @return array Record
  */
 protected function getRecord($level = Logger::WARNING, $message = 'test', $context = [])
 {
     return ['message' => $message, 'context' => $context, 'level' => $level, 'level_name' => Logger::getLevelName($level), 'channel' => 'test', 'datetime' => new DateTimeImmutable(true), 'extra' => []];
 }
Beispiel #16
0
 /**
  * Sends the log header
  *
  * @see sendHeader()
  */
 protected function send()
 {
     if (self::$overflowed || !self::$sendHeaders) {
         return;
     }
     if (!self::$initialized) {
         self::$initialized = true;
         self::$sendHeaders = $this->headersAccepted();
         if (!self::$sendHeaders) {
             return;
         }
         self::$json['request_uri'] = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
     }
     $json = @json_encode(self::$json);
     $data = base64_encode(utf8_encode($json));
     if (strlen($data) > 240 * 1024) {
         self::$overflowed = true;
         $record = array('message' => 'Incomplete logs, chrome header size limit reached', 'context' => array(), 'level' => Logger::WARNING, 'level_name' => Logger::getLevelName(Logger::WARNING), 'channel' => 'monolog', 'datetime' => new \DateTime(), 'extra' => array());
         self::$json['rows'][count(self::$json['rows']) - 1] = $this->getFormatter()->format($record);
         $json = @json_encode(self::$json);
         $data = base64_encode(utf8_encode($json));
     }
     if (trim($data) !== '') {
         $this->sendHeader(self::HEADER_NAME, $data);
     }
 }
 /**
  * @return array
  */
 private function getRecord()
 {
     return array('message' => 'Test', 'context' => array('someContextVar' => 'val'), 'level' => Logger::DEBUG, 'level_name' => Logger::getLevelName(Logger::DEBUG), 'channel' => 'test', 'datetime' => \DateTime::createFromFormat('U.u', sprintf('%.6F', microtime(true))), 'extra' => array());
 }
Beispiel #18
0
 /**
  * Set (new) log level.
  *
  * @param $level
  *
  * @return $this
  */
 public function setLevel($level)
 {
     // Check if specified level is a valid Monolog level
     Logger::getLevelName($level);
     $this->level = $level;
     return $this;
 }
 public function recordProvider()
 {
     return [[['channel' => 'unittest', 'message' => 'This is it.', 'context' => [], 'formatted' => 'This is formatted.', 'level' => Logger::DEBUG], 'unittest', ['message' => 'This is it.', 'level' => Logger::getLevelName(Logger::DEBUG)]], [['channel' => 'unittest', 'message' => 'This is it.', 'context' => ['Here' => 'Comes the sun.'], 'formatted' => 'This is formatted.', 'level' => Logger::DEBUG], 'unittest', ['Here' => 'Comes the sun.', 'message' => 'This is it.', 'level' => Logger::getLevelName(Logger::DEBUG)]]];
 }
 /**
  * @param \DateTime $dateTime
  * @param string $message
  * @param array $context
  * @param array $extra
  * @return array Record
  */
 private function getRecord(\DateTime $dateTime, $message = 'test', $context = array(), $extra = array())
 {
     return array('message' => $message, 'context' => $context, 'level' => Logger::WARNING, 'level_name' => Logger::getLevelName(Logger::WARNING), 'channel' => 'test', 'datetime' => $dateTime, 'extra' => $extra);
 }
Beispiel #21
0
 /**
  * Logs with an arbitrary level.
  *
  * @param mixed  $level
  * @param string $message
  * @param array  $context
  */
 public function log($level, $message, array $context = array())
 {
     $this->logger->{$this->logger->getLevelName($level)}($message, $context);
 }
 /**
  * {@inheritDoc}
  */
 public function write(array $record)
 {
     $tag = $record['channel'];
     $this->logger->post($tag, array_merge($record['context'], ['level' => Logger::getLevelName($record['level']), 'message' => $record['message']]));
 }
Beispiel #23
0
 public function testAddsLongAttachmentWithContextAndExtra()
 {
     $level = Logger::ERROR;
     $levelName = Logger::getLevelName($level);
     $record = new SlackRecord($this->channel, 'Monolog', true, null, false, true);
     $loggerRecord = $this->getRecord($level, 'test', array('test' => 1));
     $loggerRecord['extra'] = array('tags' => array('web'));
     $data = $record->getSlackData($loggerRecord);
     $expectedFields = array(array('title' => 'Level', 'value' => $levelName, 'short' => true), array('title' => 'tags', 'value' => '["web"]', 'short' => false), array('title' => 'test', 'value' => 1, 'short' => false));
     $attachment = $data['attachments'][0];
     $this->assertArrayHasKey('title', $attachment);
     $this->assertArrayHasKey('fields', $attachment);
     $this->assertCount(3, $attachment['fields']);
     $this->assertSame('Message', $attachment['title']);
     $this->assertSame($expectedFields, $attachment['fields']);
 }
 /**
  * Returns the RFC 5424 string name of the current log level
  *
  * @return string
  */
 public function getLevelName()
 {
     return Logger::getLevelName($this->getLogLevel());
 }
 /**
  * @param array $record
  *
  * @return bool
  *
  * @throws \Joli\JoliNotif\Exception\InvalidNotificationException
  */
 protected function write(array $record)
 {
     $this->notification->setTitle(sprintf('[%s] %s', Logger::getLevelName($this->level), $this->name))->setBody(addslashes($record['formatted']));
     return $this->notifier && $this->notifier->send($this->notification);
 }
Beispiel #26
0
 /**
  * @author LAHAXE Arnaud
  *
  * @param $id
  *
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function show($id)
 {
     $filename = storage_path('clockwork/' . $id . '.json');
     if (!is_file($filename)) {
         return response()->json([], 404);
     }
     $profile = json_decode(file_get_contents($filename));
     if (is_bool($profile)) {
         return response()->json([], 503);
     }
     $profile->id = $id;
     $profile->timestamp = Carbon::createFromTimestamp($profile->time)->timestamp;
     $profile->datetime = Carbon::createFromTimestamp($profile->time)->toIso8601String();
     $profile->duration = floor($profile->responseDuration);
     $profile->nbSqlQueries = count($profile->databaseQueries);
     $start = $profile->timelineData->total->start;
     foreach ($profile->timelineData as $key => $item) {
         $profile->timelineData->{$key}->start = floor(($item->start - $start) * 1000);
         $profile->timelineData->{$key}->end = floor(($item->end - $start) * 1000);
         $profile->timelineData->{$key}->duration = floor($item->duration);
     }
     foreach ($profile->log as $key => $item) {
         $profile->log[$key]->time = floor(($profile->log[$key]->time - $start) * 1000);
         // log from monolog use number instread of string
         if (is_numeric($profile->log[$key]->level)) {
             $profile->log[$key]->level = Logger::getLevelName($profile->log[$key]->level);
         }
         $profile->log[$key]->level = strtoupper($profile->log[$key]->level);
     }
     return response()->json($profile);
 }
Beispiel #27
0
 /**
  * @covers Monolog\Logger::getLevelName
  * @expectedException InvalidArgumentException
  */
 public function testGetLevelNameThrows()
 {
     Logger::getLevelName(5);
 }
 public function levelsProvider()
 {
     return array(array(Logger::DEBUG, Logger::getLevelName(Logger::DEBUG), ':pencil2:'), array(Logger::INFO, Logger::getLevelName(Logger::INFO), ':white_check_mark:'), array(Logger::NOTICE, Logger::getLevelName(Logger::NOTICE), ':loudspeaker:'), array(Logger::WARNING, Logger::getLevelName(Logger::WARNING), ':warning:'), array(Logger::ERROR, Logger::getLevelName(Logger::ERROR), ':bangbang:'), array(Logger::CRITICAL, Logger::getLevelName(Logger::CRITICAL), ':fire:'), array(Logger::ALERT, Logger::getLevelName(Logger::ALERT), ':no_entry:'), array(Logger::EMERGENCY, Logger::getLevelName(Logger::EMERGENCY), ':boom:'));
 }
 /**
  * The loglevel may be changed after the log handlers are initialised. If this is the case, this function will
  * update the handlers and note the chance in the log
  *
  * @param int $logLevel
  *
  * @return RuntimeConfig
  * @throws BaseCommandException
  */
 public function setLogLevel($logLevel)
 {
     if (!in_array($logLevel, Logger::getLevels())) {
         $message = "'" . $logLevel . "' is not a valid LOGLEVEL. " . "Valid values as command line parameters are: " . implode(',', array_keys(Logger::getLevels())) . " and valid values when updating the log level in code are: " . implode(',', Logger::getLevels());
         throw new BaseCommandException($message);
     }
     $this->logLevel = $logLevel;
     if ($this->getExecutionPhase() == self::PHASE_LOAD_PARAMETERS) {
         // LogLevel changed at RunTime via parameter
         $this->logConfigDebug('LOG LEVEL CHANGED VIA PARAMETER: ' . Logger::getLevelName($logLevel));
     } elseif ($this->getExecutionPhase() >= self::PHASE_INITIALISE) {
         // LogLevel changed  after the log handlers have been initialised
         /* @var $handler AbstractHandler */
         foreach ($this->getCommand()->getLogger()->getHandlers() as $handler) {
             $handler->setLevel($logLevel);
         }
         // Note in log that log level has been changed so that the new verbosity in the log is understood
         $this->logConfigDebug('LOG LEVEL CHANGED: ' . Logger::getLevelName($logLevel));
     }
     return $this;
 }
 public function testFormatDepthException()
 {
     $record = array('message' => 'some log message', 'context' => array('nest2' => new \Exception('exception message', 987)), 'level' => Logger::WARNING, 'level_name' => Logger::getLevelName(Logger::WARNING), 'channel' => 'test', 'datetime' => new \DateTime('2014-02-01 00:00:00'), 'extra' => array());
     $formatter = new MongoDBFormatter(2, false);
     $formattedRecord = $formatter->format($record);
     $this->assertEquals('exception message', $formattedRecord['context']['nest2']['message']);
     $this->assertEquals(987, $formattedRecord['context']['nest2']['code']);
     $this->assertEquals('[...]', $formattedRecord['context']['nest2']['trace']);
 }