XylotrechusZ
<?php
namespace GV;
/** If this file is called directly, abort. */
if ( ! defined( 'GRAVITYVIEW_DIR' ) ) {
die();
}
/**
* Describes log levels.
*/
class LogLevel {
const EMERGENCY = 'emergency';
const ALERT = 'alert';
const CRITICAL = 'critical';
const ERROR = 'error';
const WARNING = 'warning';
const NOTICE = 'notice';
const INFO = 'info';
const DEBUG = 'debug';
}
/**
* The \GV\Logger abstract class.
*
* @TODO: (Foundation) Deprecate in future versions.
*/
abstract class Logger /** @todo extends Psr\Log\AbstractLogger */ {
/**
* System is unusable.
*
* @param string $message
* @param array $context
*
* @return void
*/
public function emergency( $message, array $context = array() ) {
$this->log( LogLevel::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 $context
*
* @return void
*/
public function alert( $message, array $context = array() ) {
$this->log( LogLevel::ALERT, $message, $context );
}
/**
* Critical conditions.
*
* Example: Application component unavailable, unexpected exception.
*
* @param string $message
* @param array $context
*
* @return void
*/
public function critical( $message, array $context = array() ) {
$this->log( LogLevel::CRITICAL, $message, $context );
}
/**
* Runtime errors that do not require immediate action but should typically
* be logged and monitored.
*
* @param string $message
* @param array $context
*
* @return void
*/
public function error( $message, array $context = array() ) {
$this->log( LogLevel::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 $context
*
* @return void
*/
public function warning( $message, array $context = array() ) {
$this->log( LogLevel::WARNING, $message, $context );
}
/**
* Normal but significant events.
*
* @param string $message
* @param array $context
*
* @return void
*/
public function notice( $message, array $context = array() ) {
$this->log( LogLevel::NOTICE, $message, $context );
}
/**
* Interesting events.
*
* Example: User logs in, SQL logs.
*
* @param string $message
* @param array $context
*
* @return void
*/
public function info( $message, array $context = array() ) {
$this->log( LogLevel::INFO, $message, $context );
}
/**
* Detailed debug information.
*
* @param string $message
* @param array $context
*
* @return void
*/
public function debug( $message, array $context = array() ) {
$this->log( LogLevel::DEBUG, $message, $context );
}
/**
* Bake the context into { } placeholders in the message.
*
* @param string $message
* @param array $context
*
* @return string The baked message;
*/
protected function interpolate( $message, $context ) {
foreach ( $context as $key => $val ) {
if ( false !== strpos( $message, "{{$key}}" ) ) {
$message = str_replace( "{{$key}}", (string) $val, $message );
}
}
return $message;
}
}
/** Load implementations. */
require gravityview()->plugin->dir( 'future/includes/class-gv-logger-wp-action.php' );