改名
This commit is contained in:
+150
-149
@@ -7,7 +7,6 @@ use Exception;
|
|||||||
use Kiri\Events\EventProvider;
|
use Kiri\Events\EventProvider;
|
||||||
use Kiri\Exception\ConfigException;
|
use Kiri\Exception\ConfigException;
|
||||||
use Psr\Log\LoggerInterface;
|
use Psr\Log\LoggerInterface;
|
||||||
use Server\Events\OnAfterRequest;
|
|
||||||
use Server\Events\OnWorkerStop;
|
use Server\Events\OnWorkerStop;
|
||||||
|
|
||||||
|
|
||||||
@@ -17,184 +16,186 @@ use Server\Events\OnWorkerStop;
|
|||||||
class Logger implements LoggerInterface
|
class Logger implements LoggerInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
const EMERGENCY = 'emergency';
|
const EMERGENCY = 'emergency';
|
||||||
const ALERT = 'alert';
|
const ALERT = 'alert';
|
||||||
const CRITICAL = 'critical';
|
const CRITICAL = 'critical';
|
||||||
const ERROR = 'error';
|
const ERROR = 'error';
|
||||||
const WARNING = 'warning';
|
const WARNING = 'warning';
|
||||||
const NOTICE = 'notice';
|
const NOTICE = 'notice';
|
||||||
const INFO = 'info';
|
const INFO = 'info';
|
||||||
const DEBUG = 'debug';
|
const DEBUG = 'debug';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var EventProvider
|
* @var EventProvider
|
||||||
*/
|
*/
|
||||||
#[Inject(EventProvider::class)]
|
#[Inject(EventProvider::class)]
|
||||||
public EventProvider $eventProvider;
|
public EventProvider $eventProvider;
|
||||||
|
|
||||||
private array $_loggers = [];
|
private array $_loggers = [];
|
||||||
|
|
||||||
|
|
||||||
const LOGGER_LEVELS = [Logger::EMERGENCY, Logger::ALERT, Logger::CRITICAL, Logger::ERROR, Logger::WARNING, Logger::NOTICE, Logger::INFO, Logger::DEBUG];
|
const LOGGER_LEVELS = [Logger::EMERGENCY, Logger::ALERT, Logger::CRITICAL, Logger::ERROR, Logger::WARNING, Logger::NOTICE, Logger::INFO, Logger::DEBUG];
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 监听事件
|
* 监听事件
|
||||||
*/
|
*/
|
||||||
public function init()
|
public function init()
|
||||||
{
|
{
|
||||||
$this->eventProvider->on(OnAfterRequest::class, [$this, 'onAfterRequest']);
|
$this->eventProvider->on(OnWorkerStop::class, [$this, 'onAfterRequest']);
|
||||||
$this->eventProvider->on(OnWorkerStop::class, [$this, 'onAfterRequest']);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
* @throws ConfigException
|
* @throws ConfigException
|
||||||
*
|
*
|
||||||
* 紧急情况
|
* 紧急情况
|
||||||
*/
|
*/
|
||||||
public function emergency($message, array $context = array())
|
public function emergency($message, array $context = [])
|
||||||
{
|
{
|
||||||
// TODO: Implement emergency() method.
|
// TODO: Implement emergency() method.
|
||||||
$this->log(Logger::EMERGENCY, $message, $context);
|
$this->log(Logger::EMERGENCY, $message, $context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
* @throws ConfigException
|
* @throws ConfigException
|
||||||
*
|
*
|
||||||
* 应该警惕的
|
* 应该警惕的
|
||||||
*/
|
*/
|
||||||
public function alert($message, array $context = array())
|
public function alert($message, array $context = [])
|
||||||
{
|
{
|
||||||
// TODO: Implement alert() method.
|
// TODO: Implement alert() method.
|
||||||
$this->log(Logger::ALERT, $message, $context);
|
$this->log(Logger::ALERT, $message, $context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
* @throws ConfigException
|
* @throws ConfigException
|
||||||
*
|
*
|
||||||
* 关键性的日志
|
* 关键性的日志
|
||||||
*/
|
*/
|
||||||
public function critical($message, array $context = array())
|
public function critical($message, array $context = [])
|
||||||
{
|
{
|
||||||
// TODO: Implement critical() method.
|
// TODO: Implement critical() method.
|
||||||
$this->log(Logger::CRITICAL, $message, $context);
|
$this->log(Logger::CRITICAL, $message, $context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
* @throws ConfigException
|
* @throws ConfigException
|
||||||
*/
|
*/
|
||||||
public function error($message, array $context = array())
|
public function error($message, array $context = [])
|
||||||
{
|
{
|
||||||
// TODO: Implement error() method.
|
// TODO: Implement error() method.
|
||||||
$this->log(Logger::ERROR, $message, $context);
|
$this->log(Logger::ERROR, $message, $context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
* @throws ConfigException
|
* @throws ConfigException
|
||||||
*/
|
*/
|
||||||
public function warning($message, array $context = array())
|
public function warning($message, array $context = [])
|
||||||
{
|
{
|
||||||
// TODO: Implement warning() method.
|
// TODO: Implement warning() method.
|
||||||
$this->log(Logger::WARNING, $message, $context);
|
$this->log(Logger::WARNING, $message, $context);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
* @throws ConfigException
|
* @throws ConfigException
|
||||||
*/
|
*/
|
||||||
public function notice($message, array $context = array())
|
public function notice($message, array $context = [])
|
||||||
{
|
{
|
||||||
// TODO: Implement notice() method.
|
// TODO: Implement notice() method.
|
||||||
$this->log(Logger::NOTICE, $message, $context);
|
$this->log(Logger::NOTICE, $message, $context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
* @throws ConfigException
|
* @throws ConfigException
|
||||||
*/
|
*/
|
||||||
public function info($message, array $context = array())
|
public function info($message, array $context = [])
|
||||||
{
|
{
|
||||||
// TODO: Implement info() method.
|
// TODO: Implement info() method.
|
||||||
$this->log(Logger::INFO, $message, $context);
|
$this->log(Logger::INFO, $message, $context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
* @throws ConfigException
|
* @throws ConfigException
|
||||||
*/
|
*/
|
||||||
public function debug($message, array $context = array())
|
public function debug($message, array $context = [])
|
||||||
{
|
{
|
||||||
// TODO: Implement debug() method.
|
// TODO: Implement debug() method.
|
||||||
$this->log(Logger::DEBUG, $message, $context);
|
$this->log(Logger::DEBUG, $message, $context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param mixed $level
|
* @param mixed $level
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param array $context
|
* @param array $context
|
||||||
* @throws ConfigException
|
* @throws ConfigException
|
||||||
*/
|
*/
|
||||||
public function log($level, $message, array $context = array())
|
public function log($level, $message, array $context = [])
|
||||||
{
|
{
|
||||||
// TODO: Implement log() method.
|
// TODO: Implement log() method.
|
||||||
$levels = Config::get('log.level', Logger::LOGGER_LEVELS);
|
$levels = Config::get('log.level', Logger::LOGGER_LEVELS);
|
||||||
if (!in_array($level, $levels)) {
|
if (!in_array($level, $levels)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$_string = '[' . now() . '] production.' . $level . ': ' . $this->_string($message, $context);
|
$_string = '[' . now() . '] production.' . $level . ': ' . $this->_string($message, $context);
|
||||||
|
|
||||||
file_put_contents('php://output', $_string);
|
file_put_contents('php://output', $_string);
|
||||||
|
|
||||||
$this->_loggers[] = $_string;
|
$this->_loggers[] = $_string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param OnAfterRequest|OnWorkerStop $param
|
* @param OnWorkerStop $param
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function onAfterRequest(OnAfterRequest|OnWorkerStop $param)
|
public function onAfterRequest(OnWorkerStop $param)
|
||||||
{
|
{
|
||||||
$loggers = implode(PHP_EOL, $this->_loggers);
|
$loggers = implode(PHP_EOL, $this->_loggers);
|
||||||
$this->_loggers = [];
|
$this->_loggers = [];
|
||||||
if (!empty($loggers)) {
|
if (!empty($loggers)) {
|
||||||
$filename = storage('log-' . date('Y-m-d') . '.log', 'logs/');
|
$filename = storage('log-' . date('Y-m-d') . '.log', 'logs/');
|
||||||
|
|
||||||
file_put_contents($filename, $loggers);
|
file_put_contents($filename, $loggers);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $message
|
* @param $message
|
||||||
* @param $context
|
* @param $context
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function _string($message, $context): string
|
private function _string($message, $context): string
|
||||||
{
|
{
|
||||||
return $message . ' ' . print_r($context, true) . PHP_EOL;
|
if (!empty($context)) {
|
||||||
}
|
return $message . ' ' . print_r($context, true) . PHP_EOL;
|
||||||
|
}
|
||||||
|
return $message . PHP_EOL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user