File "Logger.php"
Full Path: /home/amervokv/ecomlive.net/wp-content/mu-plugins/object-cache-pro/src/Loggers/Logger.php
File size: 4.84 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Copyright © 2019-2023 Rhubarb Tech Inc. All Rights Reserved.
*
* The Object Cache Pro Software and its related materials are property and confidential
* information of Rhubarb Tech Inc. Any reproduction, use, distribution, or exploitation
* of the Object Cache Pro Software and its related materials, in whole or in part,
* is strictly forbidden unless prior permission is obtained from Rhubarb Tech Inc.
*
* In addition, any reproduction, use, distribution, or exploitation of the Object Cache Pro
* Software and its related materials, in whole or in part, is subject to the End-User License
* Agreement accessible in the included `LICENSE` file, or at: https://objectcache.pro/eula
*/
declare(strict_types=1);
namespace RedisCachePro\Loggers;
abstract class Logger implements LoggerInterface
{
/**
* System is unusable.
*
* @var string
*/
const EMERGENCY = 'emergency';
/**
* Action must be taken immediately.
*
* @var string
*/
const ALERT = 'alert';
/**
* Critical conditions.
*
* @var string
*/
const CRITICAL = 'critical';
/**
* Runtime errors that do not require immediate action but should typically
* be logged and monitored.
*
* @var string
*/
const ERROR = 'error';
/**
* Exceptional occurrences that are not errors.
*
* @var string
*/
const WARNING = 'warning';
/**
* Normal but significant events.
*
* @var string
*/
const NOTICE = 'notice';
/**
* Interesting events.
*
* @var string
*/
const INFO = 'info';
/**
* Detailed debug information.
*
* @var string
*/
const DEBUG = 'debug';
/**
* Logged levels.
*
* @var string[]|null
*/
protected $levels;
/**
* System is unusable.
*
* @param string $message
* @param array<mixed> $context
* @return void
*/
public function emergency($message, array $context = [])
{
$this->log(self::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<mixed> $context
* @return void
*/
public function alert($message, array $context = [])
{
$this->log(self::ALERT, $message, $context);
}
/**
* Critical conditions.
*
* Example: Application component unavailable, unexpected exception.
*
* @param string $message
* @param array<mixed> $context
* @return void
*/
public function critical($message, array $context = [])
{
$this->log(self::CRITICAL, $message, $context);
}
/**
* Runtime errors that do not require immediate action but should typically
* be logged and monitored.
*
* @param string $message
* @param array<mixed> $context
* @return void
*/
public function error($message, array $context = [])
{
$this->log(self::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<mixed> $context
* @return void
*/
public function warning($message, array $context = [])
{
$this->log(self::WARNING, $message, $context);
}
/**
* Normal but significant events.
*
* @param string $message
* @param array<mixed> $context
* @return void
*/
public function notice($message, array $context = [])
{
$this->log(self::NOTICE, $message, $context);
}
/**
* Interesting events.
*
* Example: User logs in, SQL logs.
*
* @param string $message
* @param array<mixed> $context
* @return void
*/
public function info($message, array $context = [])
{
$this->log(self::INFO, $message, $context);
}
/**
* Detailed debug information.
*
* @param string $message
* @param array<mixed> $context
* @return void
*/
public function debug($message, array $context = [])
{
$this->log(self::DEBUG, $message, $context);
}
/**
* Logs with an arbitrary level.
*
* @param mixed $level
* @param string $message
* @param array<mixed> $context
* @return void
*/
abstract public function log($level, $message, array $context = []);
/**
* Set the logged levels.
*
* @param string[] $levels
* @return void
*/
public function setLevels(array $levels)
{
$this->levels = $levels;
}
}