Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/wbs24.ozonapinew/lib/ |
Upload File : |
<?php namespace Wbs24\Ozonapinew; class LogStack { protected $maxRowCounts = 5000; protected $delRowCounts = 1000; protected const TABLE_NAME = 'wbs24_ozonapinew_log'; public function __construct($accountIndex = 1, $objects = []) { $this->Db = $objects['Db'] ?? new Db(); } public function create($log) { $data['account_index'] = $log['account_index'] ?? ''; $data['timestamp'] = date("Y-m-d H:i:s"); $data['entity_type'] = $log['entity_type'] ?? ''; $data['log_type'] = $log['log_type'] ?? ''; $data['api_method'] = $log['api_method'] ?? ''; $data['message'] = $log['message'] ?? ''; $data['api_request'] = $log['api_request'] ?? ''; $data['api_response'] = $log['api_response'] ?? ''; $data['trace'] = $log['trace'] ?? ''; $this->Db->set(self::TABLE_NAME, $data); } public function rotateLogs() { $rowCounts = (int) $this->Db->getRowCounts(self::TABLE_NAME); if ($rowCounts >= $this->maxRowCounts) { # данный запрос удаляет первые n записей из таблицы $this->Db->query("DELETE ".self::TABLE_NAME." FROM ".self::TABLE_NAME." JOIN (SELECT id FROM ".self::TABLE_NAME." ORDER BY id ASC LIMIT ".$this->delRowCounts.") AS temp ON ".self::TABLE_NAME.".id = temp.id;"); } } }