File: /wordpress/plugins/wp-cloud-client/1.1.0/src/Support/Logger.php
<?php
declare(strict_types=1);
namespace VPlugins\WPCloudClient\Support;
class Logger {
private const PREFIX = '[WP Cloud Client]';
/**
* Log an informational message.
*
* @param string $message The log message.
* @param mixed $context Optional context data or exception.
* @return void
*/
public function info( string $message, mixed $context = null ): void {
$this->log( 'INFO', $message, $context );
}
/**
* Log an error message.
*
* @param string $message The log message.
* @param mixed $context Optional context data or exception.
* @return void
*/
public function error( string $message, mixed $context = null ): void {
$this->log( 'ERROR', $message, $context );
}
/**
* Log a warning message.
*
* @param string $message The log message.
* @param mixed $context Optional context data or exception.
* @return void
*/
public function warning( string $message, mixed $context = null ): void {
$this->log( 'WARNING', $message, $context );
}
/**
* Write a log entry at the specified level.
*
* @param string $level The log level (INFO, ERROR, WARNING).
* @param string $message The log message.
* @param mixed $context Optional context data or exception.
* @return void
*/
private function log( string $level, string $message, mixed $context ): void {
$entry = sprintf( '%s [%s] %s', self::PREFIX, $level, $message );
if ( $context instanceof \Throwable ) {
$entry .= sprintf( ' | Exception: %s in %s:%d', $context->getMessage(), $context->getFile(), $context->getLine() );
} elseif ( null !== $context ) {
$entry .= ' | ' . wp_json_encode( $context );
}
error_log( $entry );
}
}