Automattic\WooCommerce\Internal\Logging
RemoteLogger::log()
Send the log to the remote logging service.
Метод класса: RemoteLogger{}
Хуков нет.
Возвращает
true|false
.
Использование
// private - только в коде основоного (родительского) класса $result = $this->log( $level, $message, $context );
- $level(строка) (обязательный)
- Log level (e.g., 'error', 'warning', 'info').
- $message(строка) (обязательный)
- Log message to be recorded.
- $context(массив) (обязательный)
- Additional information for log handlers, such as 'backtrace', 'tags', 'extra', and 'error'.
Код RemoteLogger::log() RemoteLogger::log WC 9.3.3
private function log( $level, $message, $context ) { try { $log_data = $this->get_formatted_log( $level, $message, $context ); // Ensure the log data is valid. if ( ! is_array( $log_data ) || empty( $log_data['message'] ) || empty( $log_data['feature'] ) ) { return false; } $body = array( 'params' => wp_json_encode( $log_data ), ); WC_Rate_Limiter::set_rate_limit( self::RATE_LIMIT_ID, self::RATE_LIMIT_DELAY ); if ( $this->is_dev_or_local_environment() ) { return false; } $response = wp_safe_remote_post( self::LOG_ENDPOINT, array( 'body' => wp_json_encode( $body ), 'timeout' => 2, 'headers' => array( 'Content-Type' => 'application/json', ), 'blocking' => false, ) ); if ( is_wp_error( $response ) ) { throw new \Exception( $response->get_error_message() ); } return true; } catch ( \Exception $e ) { // Log the error locally if the remote logging fails. error_log( 'Remote logging failed: ' . $e->getMessage() ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log return false; } }