File "EventsLogger.php"
Full path: /home/webcknlt/admissiontell.com/wp-content/plugins/vibes/includes/libraries/decalog-sdk/EventsLogger.php
File
size: 21.5 B (21.5 KB bytes)
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor &nnbsp; Back
<?php
/**
* DecaLog PSR-3 logger definition.
*
* @package SDK
* @author Pierre Lannoy <https://pierre.lannoy.fr/>.
* @since 1.0.0
*/
namespace DecaLog;
if ( 3 === \DecaLog\Engine::getPsrVersion() ) {
/**
* DecaLog PSR-3 logger class.
*
* This class defines all code necessary to log events with DecaLog.
* If DecaLog is not installed, it will do nothing and will not throw errors.
*
* @package SDK
* @author Pierre Lannoy <https://pierre.lannoy.fr/>.
* @since 1.0.0
*/
class EventsLogger implements \Psr\Log\LoggerInterface {
/**
* The "true" logger instances.
*
* @since 1.0.0
* @var array $loggers Maintains the internal loggers list.
*/
private $loggers = [];
/**
* Initialize the class and set its properties.
*
* @param string $class The class identifier, must be a value in ['plugin', 'theme', 'library'].
* @param string $name Optional. The name of the component that will trigger events.
* @param string $version Optional. The version of the component that will trigger events.
* @since 1.0.0
*/
public function __construct( $class, $name = null, $version = null ) {
if ( class_exists( '\Decalog\Plugin\Feature\DLogger' ) ) {
$this->loggers[] = new \Decalog\Plugin\Feature\DLogger( $class, $name, $version, null, true );
}
}
/**
* Adds a local logger.
* "Local" means specific to your theme or plugin. It is only needed in case your theme or plugin already implements
* a logger and you want to continue to log things with it at the same time as with DecaLog.
*
* @param object $logger The local logger to add. Must implement \Psr\Log\LoggerInterface.
* @throws \DecaLog\Exception\InvalidLoggerException
* @since 1.0.0
*/
public function addLocalLogger( $logger ) {
if ( $logger instanceof \Psr\Log\LoggerInterface ) {
$this->loggers[] = $logger;
} else {
throw new \DecaLog\Exception\InvalidLoggerException( 'The logger do not implement \Psr\Log\LoggerInterface.' );
}
}
/**
* Logs a panic condition. WordPress is unusable.
*
* @param string|\Stringable $message The message to log.
* @param mixed[] $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element
* of context that you can pass to DecaLog is a numerical error code
* ($context['code']). All other element of context will be removed.
* @return void
* @since 4.0.0
*/
public function emergency( string|\Stringable $message, array $context = [] ): void {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->emergency( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs a major operating error that undoubtedly affects the operations.
* It requires immediate investigation and corrective treatment.
*
* @param string|\Stringable $message The message to log.
* @param mixed[] $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element
* of context that you can pass to DecaLog is a numerical error code
* ($context['code']). All other element of context will be removed.
*
* @return void
* @since 4.0.0
*/
public function alert( string|\Stringable $message, array $context = [] ): void {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->alert( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs an operating error that undoubtedly affects the operations.
* It requires investigation and corrective treatment.
*
* @param string|\Stringable $message The message to log.
* @param mixed[] $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element
* of context that you can pass to DecaLog is a numerical error code
* ($context['code']). All other element of context will be removed.
*
* @return void
* @since 4.0.0
*/
public function critical( string|\Stringable $message, array $context = [] ): void {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->critical( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs a minor operating error that may affects the operations.
* It requires investigation and preventive treatment.
*
* @param string|\Stringable $message The message to log.
* @param mixed[] $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element
* of context that you can pass to DecaLog is a numerical error code
* ($context['code']). All other element of context will be removed.
*
* @return void
* @since 4.0.0
*/
public function error( string|\Stringable $message, array $context = [] ): void {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->error( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs a significant condition indicating a situation that may lead to an error if recurring or if no action is taken.
* Does not usually affect the operations.
*
* @param string|\Stringable $message The message to log.
* @param mixed[] $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element
* of context that you can pass to DecaLog is a numerical error code
* ($context['code']). All other element of context will be removed.
*
* @return void
* @since 4.0.0
*/
public function warning( string|\Stringable $message, array $context = [] ): void {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->warning( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs a normal but significant condition.
*
* @param string|\Stringable $message The message to log.
* @param mixed[] $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element
* of context that you can pass to DecaLog is a numerical error code
* ($context['code']). All other element of context will be removed.
*
* @return void
* @since 4.0.0
*/
public function notice( string|\Stringable $message, array $context = [] ): void {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->notice( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs a standard information.
*
* @param string|\Stringable $message The message to log.
* @param mixed[] $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element
* of context that you can pass to DecaLog is a numerical error code
* ($context['code']). All other element of context will be removed.
*
* @return void
* @since 4.0.0
*/
public function info( string|\Stringable $message, array $context = [] ): void {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->info( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs an information for developers and testers.
* Only used for events related to application/system debugging.
*
* @param string|\Stringable $message The message to log.
* @param mixed[] $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element
* of context that you can pass to DecaLog is a numerical error code
* ($context['code']). All other element of context will be removed.
*
* @return void
* @since 4.0.0
*/
public function debug( string|\Stringable $message, array $context = [] ): void {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->debug( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs an information with an arbitrary level.
*
* @param LogLevel $level The level of the message to log.
* @param string|\Stringable $message The message to log.
* @param mixed[] $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element
* of context that you can pass to DecaLog is a numerical error code
* ($context['code']). All other element of context will be removed.
*
* @return void
* @since 4.0.0
*/
public function log( $level, string|\Stringable $message, array $context = [] ): void {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->log( $level, (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
}
} else {
/**
* DecaLog PSR-3 logger class. Failsafe for old PSR-3 versions.
*
* This class defines all code necessary to log events with DecaLog.
* If DecaLog is not installed, it will do nothing and will not throw errors.
*
* @package SDK
* @author Pierre Lannoy <https://pierre.lannoy.fr/>.
* @since 1.0.0
*/
class EventsLogger implements \Psr\Log\LoggerInterface {
/**
* The "true" logger instances.
*
* @since 1.0.0
* @var array $loggers Maintains the internal loggers list.
*/
private $loggers = [];
/**
* Initialize the class and set its properties.
*
* @param string $class The class identifier, must be a value in ['plugin', 'theme', 'library'].
* @param string $name Optional. The name of the component that will trigger events.
* @param string $version Optional. The version of the component that will trigger events.
* @since 1.0.0
*/
public function __construct( $class, $name = null, $version = null ) {
if ( class_exists( '\Decalog\Plugin\Feature\DLogger' ) ) {
$this->loggers[] = new \Decalog\Plugin\Feature\DLogger( $class, $name, $version, null, true );
}
}
/**
* Adds a local logger.
* "Local" means specific to your theme or plugin. It is only needed in case your theme or plugin already implements
* a logger and you want to continue to log things with it at the same time as with DecaLog.
*
* @param object $logger The local logger to add. Must implement \Psr\Log\LoggerInterface.
* @throws \DecaLog\Exception\InvalidLoggerException
* @since 1.0.0
*/
public function addLocalLogger( $logger ) {
if ( $logger instanceof \Psr\Log\LoggerInterface ) {
$this->loggers[] = $logger;
} else {
throw new \DecaLog\Exception\InvalidLoggerException( 'The logger do not implement \Psr\Log\LoggerInterface.' );
}
}
/**
* Logs a panic condition. WordPress is unusable.
*
* @param string $message The message to log.
* @param array $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element of context
* that you can pass to DecaLog is a numerical error code ($context['code']). All other
* element of context will be removed.
* @return void
* @since 1.0.0
*/
public function emergency( $message, $context = [] ) {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->emergency( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs a major operating error that undoubtedly affects the operations.
* It requires immediate investigation and corrective treatment.
*
* @param string $message The message to log.
* @param array $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element of context
* that you can pass to DecaLog is a numerical error code ($context['code']). All other
* element of context will be removed.
* @return void
* @since 1.0.0
*/
public function alert( $message, $context = [] ) {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->alert( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs an operating error that undoubtedly affects the operations.
* It requires investigation and corrective treatment.
*
* @param string $message The message to log.
* @param array $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element of context
* that you can pass to DecaLog is a numerical error code ($context['code']). All other
* element of context will be removed.
* @return void
* @since 1.0.0
*/
public function critical( $message, $context = [] ) {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->critical( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs a minor operating error that may affects the operations.
* It requires investigation and preventive treatment.
*
* @param string $message The message to log.
* @param array $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element of context
* that you can pass to DecaLog is a numerical error code ($context['code']). All other
* element of context will be removed.
* @return void
* @since 1.0.0
*/
public function error( $message, $context = [] ) {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->error( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs a significant condition indicating a situation that may lead to an error if recurring or if no action is taken.
* Does not usually affect the operations.
*
* @param string $message The message to log.
* @param array $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element of context
* that you can pass to DecaLog is a numerical error code ($context['code']). All other
* element of context will be removed.
* @return void
* @since 1.0.0
*/
public function warning( $message, $context = [] ) {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->warning( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs a normal but significant condition.
*
* @param string $message The message to log.
* @param array $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element of context
* that you can pass to DecaLog is a numerical error code ($context['code']). All other
* element of context will be removed.
* @return void
* @since 1.0.0
*/
public function notice( $message, $context = [] ) {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->notice( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs a standard information.
*
* @param string $message The message to log.
* @param array $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element of context
* that you can pass to DecaLog is a numerical error code ($context['code']). All other
* element of context will be removed.
* @return void
* @since 1.0.0
*/
public function info( $message, $context = [] ) {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->info( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs an information for developers and testers.
* Only used for events related to application/system debugging.
*
* @param string $message The message to log.
* @param array $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element of context
* that you can pass to DecaLog is a numerical error code ($context['code']). All other
* element of context will be removed.
* @return void
* @since 1.0.0
*/
public function debug( $message, $context = [] ) {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->debug( (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
/**
* Logs an information with an arbitrary level.
*
* @param \Psr\Log\LogLevel $level The level of the message to log.
* @param string $message The message to log.
* @param array $context Optional. The context of the event.
* FYI, DecaLog has its own context-aware logging system. The only element of context
* that you can pass to DecaLog is a numerical error code ($context['code']). All other
* element of context will be removed.
* @return void
* @since 1.0.0
*/
public function log( $level, $message, $context = [] ) {
if ( ! is_array( $context ) ) {
$context = [ 'code' => 30973 ];
$this->debug( 'Wrong method argument: `$context` must be an array.', $context );
}
foreach ( $this->loggers as $logger ) {
$logger->log( $level, (string) $message, array_key_exists( 'code', $context ) ? (int) $context['code'] : 0 );
}
}
}
}