*/ private array $levelMapping = [ LogLevel::EMERGENCY => 7, LogLevel::ALERT => 6, LogLevel::CRITICAL => 5, LogLevel::ERROR => 4, LogLevel::WARNING => 3, LogLevel::NOTICE => 2, LogLevel::INFO => 1, LogLevel::DEBUG => 0, ]; private int $level; /** * Constructs a basic PSR-3 logger class that logs into StdOut for GCP Logging * * @param string $level The level of the logger instance. */ public function __construct(string $level = LogLevel::DEBUG) { $this->level = $this->getLevelFromName($level); } /** * {@inheritdoc} */ public function log($level, string|Stringable $message, array $context = []): void { if ($this->getLevelFromName($level) < $this->level) { return; } print($message . "\n"); } /** * @param string $levelName * @return int * @throws InvalidArgumentException */ private function getLevelFromName(string $levelName): int { if (!array_key_exists($levelName, $this->levelMapping)) { throw new InvalidArgumentException('The level supplied to the Logger is not valid'); } return $this->levelMapping[$levelName]; } }