diff options
| author | winter | 2024-12-14 16:26:30 +0000 |
|---|---|---|
| committer | winter | 2024-12-14 16:26:30 +0000 |
| commit | 4dc9d1a481417bb78606996fa75c791bb646f44f (patch) | |
| tree | 1e5c1beff234999a0a0eb9819515644ec73d965d /Digitigrade/Logger.php | |
| parent | 86cf52e8d2701e13bd9fd4c847b35eba7506c473 (diff) | |
job queue and workers and loggers!
Diffstat (limited to 'Digitigrade/Logger.php')
| -rw-r--r-- | Digitigrade/Logger.php | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Digitigrade/Logger.php b/Digitigrade/Logger.php new file mode 100644 index 0000000..2a87c21 --- /dev/null +++ b/Digitigrade/Logger.php @@ -0,0 +1,52 @@ +<?php +namespace Digitigrade; + +class Logger extends Singleton { + // TODO: implement different logging methods + + public const LEVEL_DEBUG = 0; + public const LEVEL_INFO = 1; + public const LEVEL_WARNING = 2; + public const LEVEL_ERROR = 3; + + private const TIME_FORMAT = 'Y-m-d H:i:s.v'; + + private int $minLevel = self::LEVEL_INFO; + + + public function setMinimumLevel(int $level) { + $this->minLevel = $level; + } + + private function log(string $message, int $level) { + if ($level < $this->minLevel) + return; + $timestamp = (new \DateTimeImmutable())->format(self::TIME_FORMAT);# + $levelName = match ($level) { + self::LEVEL_DEBUG => 'DBG', + self::LEVEL_INFO => 'INF', + self::LEVEL_WARNING => 'WRN', + self::LEVEL_ERROR => 'ERR', + default => '???' + }; + + // TODO: don't hardcode this method + error_log("[$timestamp] $levelName: $message"); + } + + public function debug(string $message) { + $this->log($message, self::LEVEL_DEBUG); + } + + public function info(string $message) { + $this->log($message, self::LEVEL_INFO); + } + + public function warning(string $message) { + $this->log($message, self::LEVEL_WARNING); + } + + public function error(string $message) { + $this->log($message, self::LEVEL_ERROR); + } +}
\ No newline at end of file |
