private $minLevel = self::INFO;
public function debug($message, $context = []) {
$this->log(self::DEBUG, 'DEBUG', $message, $context);
public function info($message, $context = []) {
$this->log(self::INFO, 'INFO', $message, $context);
public function warn($message, $context = []) {
$this->log(self::WARN, 'WARN', $message, $context);
public function error($message, $context = []) {
$this->log(self::ERROR, 'ERROR', $message, $context);
private function log($level, $levelName, $message, $context) {
if ($level >= $this->minLevel) {
$timestamp = date('Y-m-d H:i:s');
$contextJson = json_encode($context);
echo "[$timestamp] [$levelName] $message $contextJson\n";