![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-payment/Model/Method/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Payment\Model\Method; use Magento\Payment\Gateway\ConfigInterface; use Psr\Log\LoggerInterface; /** * Class Logger for payment related information (request, response, etc.) which is used for debug. * * @api * @since 100.0.2 */ class Logger { const DEBUG_KEYS_MASK = '****'; /** * @var LoggerInterface */ protected $logger; /** * @var ConfigInterface */ private $config; /** * @param LoggerInterface $logger * @param ConfigInterface|null $config */ public function __construct( LoggerInterface $logger, ConfigInterface $config = null ) { $this->logger = $logger; $this->config = $config; } /** * Logs payment related information used for debug * * @param array $data * @param array|null $maskKeys * @param bool|null $forceDebug * @return void */ public function debug(array $data, array $maskKeys = null, $forceDebug = null) { $maskKeys = $maskKeys !== null ? $maskKeys : $this->getDebugReplaceFields(); $debugOn = $forceDebug !== null ? $forceDebug : $this->isDebugOn(); if ($debugOn === true) { $data = $this->filterDebugData( $data, $maskKeys ); $this->logger->debug(var_export($data, true)); } } /** * Returns configured keys to be replaced with mask * * @return array */ private function getDebugReplaceFields() { if ($this->config && $this->config->getValue('debugReplaceKeys')) { return explode(',', $this->config->getValue('debugReplaceKeys')); } return []; } /** * Whether debug is enabled in configuration * * @return bool */ private function isDebugOn() { return $this->config && (bool)$this->config->getValue('debug'); } /** * Recursive filter data by private conventions * * @param array $debugData * @param array $debugReplacePrivateDataKeys * @return array */ protected function filterDebugData(array $debugData, array $debugReplacePrivateDataKeys) { $debugReplacePrivateDataKeys = array_map('strtolower', $debugReplacePrivateDataKeys); foreach (array_keys($debugData) as $key) { if (in_array(strtolower($key), $debugReplacePrivateDataKeys)) { $debugData[$key] = self::DEBUG_KEYS_MASK; } elseif (is_array($debugData[$key])) { $debugData[$key] = $this->filterDebugData($debugData[$key], $debugReplacePrivateDataKeys); } } return $debugData; } }