Your IP : 18.220.95.15
<?php
namespace Bitrix\Sale\PaySystem;
use Bitrix\Main\Type\DateTime;
use Bitrix\Sale\Internals\PaySystemErrLogTable;
class ErrorLog
{
const DEBUG_MODE = true;
/**
* @param array $fields
* @throws \Exception
*/
public static function add(array $fields)
{
self::prepareParams($fields);
if (self::DEBUG_MODE)
{
self::addToFile($fields);
}
else
{
self::addToDb($fields);
self::addToEventLog($fields);
}
}
/**
* @param array $fields
*/
private static function addToFile(array $fields)
{
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/sale/payment_log.txt', self::convertArrayToString($fields), FILE_APPEND);
}
/**
* @param array $fields
* @throws \Exception
*/
private static function addToDb(array $fields)
{
$fields['DATE_INSERT'] = new DateTime();
$result = PaySystemErrLogTable::add($fields);
if (!$result->isSuccess())
throw new \Exception();
}
/**
* @param $fields
*/
public static function addToEventLog($fields)
{
\CEventLog::Add(array(
"SEVERITY" => "ERROR",
"AUDIT_TYPE_ID" => "SALE_PAY_SYSTEM_ERROR",
"MODULE_ID" => "sale",
"ITEM_ID" => "-",
"DESCRIPTION" => $fields['MESSAGE'],
));
}
/**
* @param $fields
* @return string
*/
private static function convertArrayToString($fields)
{
$result = '';
foreach ($fields as $key => $value)
$result .= $key." : ".$value."\n";
return $result."\n";
}
/**
* @param array $fields
* @return array
*/
private static function prepareParams(array $fields)
{
$fields['DATE_INSERT'] = new DateTime();
if (is_array($fields['MESSAGE']))
$fields['MESSAGE'] = self::convertArrayToString($fields['MESSAGE']);
return $fields;
}
}