%PDF- %PDF-
Direktori : /home/silvzytp/crm-dub-code/vendor/laravel/framework/src/Illuminate/Log/ |
Current File : //home/silvzytp/crm-dub-code/vendor/laravel/framework/src/Illuminate/Log/Logger.php |
<?php namespace Illuminate\Log; use Closure; use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Support\Arrayable; use Illuminate\Contracts\Support\Jsonable; use Illuminate\Log\Events\MessageLogged; use Psr\Log\LoggerInterface; use RuntimeException; class Logger implements LoggerInterface { /** * The underlying logger implementation. * * @var \Psr\Log\LoggerInterface */ protected $logger; /** * The event dispatcher instance. * * @var \Illuminate\Contracts\Events\Dispatcher|null */ protected $dispatcher; /** * Any context to be added to logs. * * @var array */ protected $context = []; /** * Create a new log writer instance. * * @param \Psr\Log\LoggerInterface $logger * @param \Illuminate\Contracts\Events\Dispatcher|null $dispatcher * @return void */ public function __construct(LoggerInterface $logger, Dispatcher $dispatcher = null) { $this->logger = $logger; $this->dispatcher = $dispatcher; } /** * Log an emergency message to the logs. * * @param \Illuminate\Contracts\Support\Arrayable|\Illuminate\Contracts\Support\Jsonable|\Illuminate\Support\Stringable|array|string $message * @param array $context * @return void */ public function emergency($message, array $context = []): void { $this->writeLog(__FUNCTION__, $message, $context); } /** * Log an alert message to the logs. * * @param \Illuminate\Contracts\Support\Arrayable|\Illuminate\Contracts\Support\Jsonable|\Illuminate\Support\Stringable|array|string $message * @param array $context * @return void */ public function alert($message, array $context = []): void { $this->writeLog(__FUNCTION__, $message, $context); } /** * Log a critical message to the logs. * * @param \Illuminate\Contracts\Support\Arrayable|\Illuminate\Contracts\Support\Jsonable|\Illuminate\Support\Stringable|array|string $message * @param array $context * @return void */ public function critical($message, array $context = []): void { $this->writeLog(__FUNCTION__, $message, $context); } /** * Log an error message to the logs. * * @param \Illuminate\Contracts\Support\Arrayable|\Illuminate\Contracts\Support\Jsonable|\Illuminate\Support\Stringable|array|string $message * @param array $context * @return void */ public function error($message, array $context = []): void { $this->writeLog(__FUNCTION__, $message, $context); } /** * Log a warning message to the logs. * * @param \Illuminate\Contracts\Support\Arrayable|\Illuminate\Contracts\Support\Jsonable|\Illuminate\Support\Stringable|array|string $message * @param array $context * @return void */ public function warning($message, array $context = []): void { $this->writeLog(__FUNCTION__, $message, $context); } /** * Log a notice to the logs. * * @param \Illuminate\Contracts\Support\Arrayable|\Illuminate\Contracts\Support\Jsonable|\Illuminate\Support\Stringable|array|string $message * @param array $context * @return void */ public function notice($message, array $context = []): void { $this->writeLog(__FUNCTION__, $message, $context); } /** * Log an informational message to the logs. * * @param \Illuminate\Contracts\Support\Arrayable|\Illuminate\Contracts\Support\Jsonable|\Illuminate\Support\Stringable|array|string $message * @param array $context * @return void */ public function info($message, array $context = []): void { $this->writeLog(__FUNCTION__, $message, $context); } /** * Log a debug message to the logs. * * @param \Illuminate\Contracts\Support\Arrayable|\Illuminate\Contracts\Support\Jsonable|\Illuminate\Support\Stringable|array|string $message * @param array $context * @return void */ public function debug($message, array $context = []): void { $this->writeLog(__FUNCTION__, $message, $context); } /** * Log a message to the logs. * * @param string $level * @param \Illuminate\Contracts\Support\Arrayable|\Illuminate\Contracts\Support\Jsonable|\Illuminate\Support\Stringable|array|string $message * @param array $context * @return void */ public function log($level, $message, array $context = []): void { $this->writeLog($level, $message, $context); } /** * Dynamically pass log calls into the writer. * * @param string $level * @param \Illuminate\Contracts\Support\Arrayable|\Illuminate\Contracts\Support\Jsonable|\Illuminate\Support\Stringable|array|string $message * @param array $context * @return void */ public function write($level, $message, array $context = []): void { $this->writeLog($level, $message, $context); } /** * Write a message to the log. * * @param string $level * @param \Illuminate\Contracts\Support\Arrayable|\Illuminate\Contracts\Support\Jsonable|\Illuminate\Support\Stringable|array|string $message * @param array $context * @return void */ protected function writeLog($level, $message, $context): void { $this->logger->{$level}( $message = $this->formatMessage($message), $context = array_merge($this->context, $context) ); $this->fireLogEvent($level, $message, $context); } /** * Add context to all future logs. * * @param array $context * @return $this */ public function withContext(array $context = []) { $this->context = array_merge($this->context, $context); return $this; } /** * Flush the existing context array. * * @return $this */ public function withoutContext() { $this->context = []; return $this; } /** * Register a new callback handler for when a log event is triggered. * * @param \Closure $callback * @return void * * @throws \RuntimeException */ public function listen(Closure $callback) { if (! isset($this->dispatcher)) { throw new RuntimeException('Events dispatcher has not been set.'); } $this->dispatcher->listen(MessageLogged::class, $callback); } /** * Fires a log event. * * @param string $level * @param string $message * @param array $context * @return void */ protected function fireLogEvent($level, $message, array $context = []) { // If the event dispatcher is set, we will pass along the parameters to the // log listeners. These are useful for building profilers or other tools // that aggregate all of the log messages for a given "request" cycle. if (isset($this->dispatcher)) { $this->dispatcher->dispatch(new MessageLogged($level, $message, $context)); } } /** * Format the parameters for the logger. * * @param \Illuminate\Contracts\Support\Arrayable|\Illuminate\Contracts\Support\Jsonable|\Illuminate\Support\Stringable|array|string $message * @return string */ protected function formatMessage($message) { if (is_array($message)) { return var_export($message, true); } elseif ($message instanceof Jsonable) { return $message->toJson(); } elseif ($message instanceof Arrayable) { return var_export($message->toArray(), true); } return (string) $message; } /** * Get the underlying logger implementation. * * @return \Psr\Log\LoggerInterface */ public function getLogger() { return $this->logger; } /** * Get the event dispatcher instance. * * @return \Illuminate\Contracts\Events\Dispatcher */ public function getEventDispatcher() { return $this->dispatcher; } /** * Set the event dispatcher instance. * * @param \Illuminate\Contracts\Events\Dispatcher $dispatcher * @return void */ public function setEventDispatcher(Dispatcher $dispatcher) { $this->dispatcher = $dispatcher; } /** * Dynamically proxy method calls to the underlying logger. * * @param string $method * @param array $parameters * @return mixed */ public function __call($method, $parameters) { return $this->logger->{$method}(...$parameters); } }