Once initialized, the DecaLog SDK is ready to trigger events.
To do so, just ask the Engine
to return a PSR-3 logger for your already registered slug and use it like any other PSR-3 logger:
<?php
$events = \DecaLog\Engine::eventsLogger( 'my-plugin-slug' );
$events->info( 'This is an information.' );
$events->error( 'This is an error with a code.', [ 'code' => 500 ] );
Code language: PHP (php)
There are 8 methods – from debug()
to emergency()
– you can use:
/**
* 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 = [] ) {}
/**
* 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 = [] ) {}
/**
* 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 = [] ) {}
/**
* 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 = [] ) {}
/**
* 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 = [] ) {}
/**
* 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 = [] ) {}
/**
* 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 = [] ) {}
/**
* 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 = [] ) {}
Code language: PHP (php)
Logging events at a specific level
Like any PSR-3 logger, in addition to the 8 previous methods, DecaLog offers a method to specify the level of the event as an argument:
<?php
$events = \DecaLog\Engine::eventsLogger( 'my-plugin-slug' );
$events->log( \Psr\Log\LogLevel::INFO, 'This is an information' );
$events->log( \Psr\Log\LogLevel::ERROR, 'This is an error with a code.', [ 'code' => 500 ] );
Code language: PHP (php)
Limitations
Any events triggered after the DECALOG_MAX_SHUTDOWN_PRIORITY
in the WordPress shutdown
hook may be dropped by DecaLog.
<?php
// The following error will be logged:
add_action(
'shutdown',
function() {
\DecaLog\Engine::eventsLogger( 'my-plugin-slug' )->error( 'This error is logged.' );
},
DECALOG_MAX_SHUTDOWN_PRIORITY,
0
);
// The following error may not be logged:
add_action(
'shutdown',
function() {
\DecaLog\Engine::eventsLogger( 'my-plugin-slug' )->error( 'This error may not be logged.' );
},
DECALOG_MAX_SHUTDOWN_PRIORITY + 1,
0
);
Code language: PHP (php)